Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
数学とプログラミングの世界を楽しもう〜プロジェクトオイラー〜
Search
けんご
September 04, 2015
Programming
8
6.4k
数学とプログラミングの世界を楽しもう〜プロジェクトオイラー〜
プログラマのための数学勉強会@福岡で話したスライドです。
けんご
September 04, 2015
Tweet
Share
More Decks by けんご
See All by けんご
いいたいことちゃんという
tkengo
0
370
スタートアップで役割をまっとうする技術
tkengo
0
130
TableauやLookerだけじゃない!QuickSightで作る顧客向けダッシュボード
tkengo
1
210
toypoインフラリプレースのお話
tkengo
0
16
機械学習を始めるための第一歩
tkengo
0
230
レポート化の落とし穴
tkengo
0
120
PHP and sometimes Machine Learning
tkengo
3
1.1k
機械学習と数学とプログラマのための数学勉強会
tkengo
0
540
CNNによるテキスト分類
tkengo
1
47k
Other Decks in Programming
See All in Programming
Recoilを剥がしている話
kirik
5
6.8k
Jakarta EE meets AI
ivargrimstad
0
250
rails statsで大解剖 🔍 “B/43流” のRailsの育て方を歴史とともに振り返ります
shoheimitani
2
940
17年周年のWebアプリケーションにTanStack Queryを導入する / Implementing TanStack Query in a 17th Anniversary Web Application
saitolume
0
250
SymfonyCon Vienna 2025: Twig, still relevant in 2025?
fabpot
3
1.2k
バグを見つけた?それAppleに直してもらおう!
uetyo
0
180
これが俺の”自分戦略” プロセスを楽しんでいこう! - Developers CAREER Boost 2024
niftycorp
PRO
0
190
たのしいparse.y
ydah
3
120
これでLambdaが不要に?!Step FunctionsのJSONata対応について
iwatatomoya
2
3.7k
テストコード書いてみませんか?
onopon
2
120
情報漏洩させないための設計
kubotak
2
240
短期間での新規プロダクト開発における「コスパの良い」Goのテスト戦略」 / kamakura.go
n3xem
2
170
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
247
1.3M
Code Review Best Practice
trishagee
65
17k
The Pragmatic Product Professional
lauravandoore
32
6.3k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
28
4.4k
Typedesign – Prime Four
hannesfritz
40
2.4k
Adopting Sorbet at Scale
ufuk
73
9.1k
Code Reviewing Like a Champion
maltzj
520
39k
Making the Leap to Tech Lead
cromwellryan
133
9k
Building an army of robots
kneath
302
44k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Transcript
数学とプログラミングの 世界を楽しもう プログラマのための数学勉強会@福岡 2015.09.04 @tkengo
立石 賢吾 Twitter : @tkengo github : @tkengo RubyとJavaScriptが好きです。でも、トトロの方が もっと好きです。
Project Euler
Project Euler 計算問題をプログラミングを使って 解いて答えを入力するサイト。
Project Euler •全ての問題は一般的なスペックのPCで1分以内で解ける。 •でも、別に1分以上かかっても答えが出ればOK。 •正解後にフォーラム上で他人の解答を閲覧可能。 •問題を解く度にレベルが上ったりアワードをもらえたり。
問題紹介
3と5の倍数
10未満の3または5の倍数である自然数には3, 5, 6, 9が あり、それらの合計は23である。 では、1000未満の3または5の倍数の全ての自然数の合 計を求めよ。 問1: 3と5の倍数
1000未満の3または5の倍数の全ての自然数の合計とは つまり... 3 + 5 + 6 + 9 +
10 + 12 + 15 + ... 問1: 3と5の倍数
1000未満の3または5の倍数の全ての自然数の合計とは つまり... 3 + 5 + 6 + 9 +
10 + 12 + 15 + ... ( 3 + 6 + 9 + 12 + 15 + ...) = (①3の倍数の合計) 問1: 3と5の倍数
1000未満の3または5の倍数の全ての自然数の合計とは つまり... 3 + 5 + 6 + 9 +
10 + 12 + 15 + ... ( 3 + 6 + 9 + 12 + 15 + ...) = + ( 5 + 10 + 15 + 20 + 25 + ...) (①3の倍数の合計) (②5の倍数の合計) 問1: 3と5の倍数
問1: 3と5の倍数 1000未満の3または5の倍数の全ての自然数の合計とは つまり... 3 + 5 + 6 +
9 + 10 + 12 + 15 + ... ( 3 + 6 + 9 + 12 + 15 + ...) = + ( 5 + 10 + 15 + 20 + 25 + ...) - (15 + 30 + 45 + ...) (①3の倍数の合計) (②5の倍数の合計) (③15の倍数の合計) ※①と②で2回足し上げてる のを相殺するために引く
問1: 3と5の倍数 1000未満の3または5の倍数の全ての自然数の合計とは つまり... 3 + 5 + 6 +
9 + 10 + 12 + 15 + ... ( 3 + 6 + 9 + 12 + 15 + ...) = + ( 5 + 10 + 15 + 20 + 25 + ...) - (15 + 30 + 45 + ...) = (①3の倍数の合計) (②5の倍数の合計) (③15の倍数の合計) ※①と②で2回足し上げてる のを相殺するために引く N(3) X k=1 3k + N(5) X k=1 5k N(15) X k=1 15k ✓ N(d) = 1000 1 d ◆
問1: 3と5の倍数 各項が一定数ずつ増えていく数列のことを等比数列と言 いますね。等比数列の和というと... 例: 3 ずつ増えていく数列(公差 d = 3)
問1: 3と5の倍数 各項が一定数ずつ増えていく数列のことを等比数列と言 いますね。等比数列の和というと... = 3 + 6 + 9
+ ... + 996 + 999 例: 3 ずつ増えていく数列(公差 d = 3) S3
問1: 3と5の倍数 各項が一定数ずつ増えていく数列のことを等比数列と言 いますね。等比数列の和というと... = 3 + 6 + 9
+ ... + 996 + 999 = 999 + 996 + 993 + ... + 6 + 3 例: 3 ずつ増えていく数列(公差 d = 3) S3 S3
問1: 3と5の倍数 各項が一定数ずつ増えていく数列のことを等比数列と言 いますね。等比数列の和というと... = 3 + 6 + 9
+ ... + 996 + 999 = 999 + 996 + 993 + ... + 6 + 3 例: 3 ずつ増えていく数列(公差 d = 3) + S3 S3
問1: 3と5の倍数 各項が一定数ずつ増えていく数列のことを等比数列と言 いますね。等比数列の和というと... = 3 + 6 + 9
+ ... + 996 + 999 = 999 + 996 + 993 + ... + 6 + 3 = 1002 + 1002 + 1002 + ... + 1002 + 1002 例: 3 ずつ増えていく数列(公差 d = 3) + S3 S3 2S3
問1: 3と5の倍数 各項が一定数ずつ増えていく数列のことを等比数列と言 いますね。等比数列の和というと... = 3 + 6 + 9
+ ... + 996 + 999 = 999 + 996 + 993 + ... + 6 + 3 = 1002 + 1002 + 1002 + ... + 1002 + 1002 (= 333) 個 例: 3 ずつ増えていく数列(公差 d = 3) + 1000 1 3 S3 S3 2S3
問1: 3と5の倍数 各項が一定数ずつ増えていく数列のことを等比数列と言 いますね。等比数列の和というと... = 3 + 6 + 9
+ ... + 996 + 999 = 999 + 996 + 993 + ... + 6 + 3 = 1002 + 1002 + 1002 + ... + 1002 + 1002 例: 3 ずつ増えていく数列(公差 d = 3) + (= 333) 個 1000 1 3 S3 S3 2S3 S3 = 1 2 · 1002 · 333 = 501 · 333 = 166833
問1: 3と5の倍数 一般的に公差 d の数列が n 個ある場合の総和は、以下の ようにして計算できますね。 例: d
ずつ増えていく数列(公差 d) = d + 2d + ... + (n-1)d + nd Sn
問1: 3と5の倍数 一般的に公差 d の数列が n 個ある場合の総和は、以下の ようにして計算できますね。 例: d
ずつ増えていく数列(公差 d) = d + 2d + ... + (n-1)d + nd Sn = nd + (n-1)d + ... + 2d + d Sn
問1: 3と5の倍数 一般的に公差 d の数列が n 個ある場合の総和は、以下の ようにして計算できますね。 例: d
ずつ増えていく数列(公差 d) = d + 2d + ... + (n-1)d + nd Sn = nd + (n-1)d + ... + 2d + d Sn +
問1: 3と5の倍数 一般的に公差 d の数列が n 個ある場合の総和は、以下の ようにして計算できますね。 例: d
ずつ増えていく数列(公差 d) = d + 2d + ... + (n-1)d + nd Sn = nd + (n-1)d + ... + 2d + d Sn = (n+1)d + (n+1)d + ... + (n+1)d + (n+1)d 2Sn +
問1: 3と5の倍数 一般的に公差 d の数列が n 個ある場合の総和は、以下の ようにして計算できますね。 例: d
ずつ増えていく数列(公差 d) = d + 2d + ... + (n-1)d + nd Sn = nd + (n-1)d + ... + 2d + d Sn = (n+1)d + (n+1)d + ... + (n+1)d + (n+1)d 2Sn n 個 +
問1: 3と5の倍数 一般的に公差 d の数列が n 個ある場合の総和は、以下の ようにして計算できますね。 例: d
ずつ増えていく数列(公差 d) = d + 2d + ... + (n-1)d + nd Sn = nd + (n-1)d + ... + 2d + d Sn = (n+1)d + (n+1)d + ... + (n+1)d + (n+1)d 2Sn n 個 + Sn = 1 2 · (n + 1)d · n = n(n + 1)d 2
問1: 3と5の倍数 等差数列の和の公式を使うと... N(3) X k=1 3k + N(5) X
k=1 5k N(15) X k=1 15k ✓ N(d) = 1000 1 d ◆
問1: 3と5の倍数 等差数列の和の公式を使うと... N(3) X k=1 3k + N(5) X
k=1 5k N(15) X k=1 15k ✓ N(d) = 1000 1 d ◆ = N(3)((N(3) + 1)3 2 + N(5)(N(5) + 1)5 2 N(15)(N(15) + 1)15 2
自乗の合計の差
問6: 自乗の合計の差 最初の10個の自然数の”自乗の総和”は 最初の10個の自然数の”総和の自乗”は これらの差は である。 では、最初の100個の自然数の”自乗の総和”と”総和の自 乗”の差を求めよ。 12 + 22
+ · · · + 102 = 385 (1 + 2 + · · · + 10)2 = 552 = 3025 3025 385 = 2640
問6: 自乗の合計の差 総和の自乗は、問1で求めた等差数列の和の公式が適用 できますね。 (1 + 2 + · ·
· + 99 + 100)2 = ✓ 100(100 + 1) 2 ◆2
問6: 自乗の合計の差 自乗の総和は別途公式があるので求めてみます。n = 4 までを計算してみると... 12 + 22 +
32 + 42
問6: 自乗の合計の差 = 1 + (2 + 2) + (3
+ 3 + 3) + (4 + 4 + 4 + 4) = 4 + (4 + 3) + (4 + 3 + 2) + (4 + 3 + 2 + 1) = 4 + (3 + 4) + (2 + 3 + 4) + (1 + 2 + 3 + 4) 12 + 22 + 32 + 42 9 + (9 + 9) + (9 + 9 + 9) + (9 + 9 + 9 + 9) 自乗の総和は別途公式があるので求めてみます。n = 4 までを計算してみると...
問6: 自乗の合計の差 = 1 + (2 + 2) + (3
+ 3 + 3) + (4 + 4 + 4 + 4) = 4 + (4 + 3) + (4 + 3 + 2) + (4 + 3 + 2 + 1) = 4 + (3 + 4) + (2 + 3 + 4) + (1 + 2 + 3 + 4) 12 + 22 + 32 + 42 9 + (9 + 9) + (9 + 9 + 9) + (9 + 9 + 9 + 9) 自乗の総和は別途公式があるので求めてみます。n = 4 までを計算してみると...
問6: 自乗の合計の差 = 1 + (2 + 2) + (3
+ 3 + 3) + (4 + 4 + 4 + 4) = 4 + (4 + 3) + (4 + 3 + 2) + (4 + 3 + 2 + 1) = 4 + (3 + 4) + (2 + 3 + 4) + (1 + 2 + 3 + 4) 12 + 22 + 32 + 42 9 + (9 + 9) + (9 + 9 + 9) + (9 + 9 + 9 + 9) 自乗の総和は別途公式があるので求めてみます。n = 4 までを計算してみると...
問6: 自乗の合計の差 = 1 + (2 + 2) + (3
+ 3 + 3) + (4 + 4 + 4 + 4) = 4 + (4 + 3) + (4 + 3 + 2) + (4 + 3 + 2 + 1) = 4 + (3 + 4) + (2 + 3 + 4) + (1 + 2 + 3 + 4) 12 + 22 + 32 + 42 9 + (9 + 9) + (9 + 9 + 9) + (9 + 9 + 9 + 9) 自乗の総和は別途公式があるので求めてみます。n = 4 までを計算してみると...
問6: 自乗の合計の差 = 1 + (2 + 2) + (3
+ 3 + 3) + (4 + 4 + 4 + 4) = 4 + (4 + 3) + (4 + 3 + 2) + (4 + 3 + 2 + 1) = 4 + (3 + 4) + (2 + 3 + 4) + (1 + 2 + 3 + 4) 12 + 22 + 32 + 42 9 + (9 + 9) + (9 + 9 + 9) + (9 + 9 + 9 + 9) 自乗の総和は別途公式があるので求めてみます。n = 4 までを計算してみると...
問6: 自乗の合計の差 = 1 + (2 + 2) + (3
+ 3 + 3) + (4 + 4 + 4 + 4) = 4 + (4 + 3) + (4 + 3 + 2) + (4 + 3 + 2 + 1) = 4 + (3 + 4) + (2 + 3 + 4) + (1 + 2 + 3 + 4) 12 + 22 + 32 + 42 9 + (9 + 9) + (9 + 9 + 9) + (9 + 9 + 9 + 9) 自乗の総和は別途公式があるので求めてみます。n = 4 までを計算してみると...
問6: 自乗の合計の差 = 1 + (2 + 2) + (3
+ 3 + 3) + (4 + 4 + 4 + 4) = 4 + (4 + 3) + (4 + 3 + 2) + (4 + 3 + 2 + 1) = 4 + (3 + 4) + (2 + 3 + 4) + (1 + 2 + 3 + 4) 12 + 22 + 32 + 42 9 + (9 + 9) + (9 + 9 + 9) + (9 + 9 + 9 + 9) 自乗の総和は別途公式があるので求めてみます。n = 4 までを計算してみると...
問6: 自乗の合計の差 = 1 + (2 + 2) + (3
+ 3 + 3) + (4 + 4 + 4 + 4) = 4 + (4 + 3) + (4 + 3 + 2) + (4 + 3 + 2 + 1) = 4 + (3 + 4) + (2 + 3 + 4) + (1 + 2 + 3 + 4) 12 + 22 + 32 + 42 9 + (9 + 9) + (9 + 9 + 9) + (9 + 9 + 9 + 9) 自乗の総和は別途公式があるので求めてみます。n = 4 までを計算してみると...
問6: 自乗の合計の差 = 1 + (2 + 2) + (3
+ 3 + 3) + (4 + 4 + 4 + 4) = 4 + (4 + 3) + (4 + 3 + 2) + (4 + 3 + 2 + 1) = 4 + (3 + 4) + (2 + 3 + 4) + (1 + 2 + 3 + 4) 12 + 22 + 32 + 42 9 + (9 + 9) + (9 + 9 + 9) + (9 + 9 + 9 + 9) 2 · 4 + 1 = 9 自乗の総和は別途公式があるので求めてみます。n = 4 までを計算してみると...
問6: 自乗の合計の差 = 1 + (2 + 2) + (3
+ 3 + 3) + (4 + 4 + 4 + 4) = 4 + (4 + 3) + (4 + 3 + 2) + (4 + 3 + 2 + 1) = 4 + (3 + 4) + (2 + 3 + 4) + (1 + 2 + 3 + 4) 12 + 22 + 32 + 42 9 + (9 + 9) + (9 + 9 + 9) + (9 + 9 + 9 + 9) 1+2+3+4個(つまりn=4までの等差数列の和) 個 = 4(4 + 1) 2 = 10 自乗の総和は別途公式があるので求めてみます。n = 4 までを計算してみると...
問6: 自乗の合計の差 とおくと、前頁の結果から S4 = 12 + 22 + 32
+ 42 3S4 = (2 · 4 + 1) · 4(4 + 1) 2 となるのがわかります。
問6: 自乗の合計の差 とおくと、前頁の結果から S4 = 12 + 22 + 32
+ 42 3S4 = (2 · 4 + 1) · 4(4 + 1) 2 となるのがわかります。 この 4 を n に一般化してみると 3Sn = (2n + 1) · n(n + 1) 2 となります。
問6: 自乗の合計の差 とおくと、前頁の結果から S4 = 12 + 22 + 32
+ 42 3S4 = (2 · 4 + 1) · 4(4 + 1) 2 となるのがわかります。 この 4 を n に一般化してみると 3Sn = (2n + 1) · n(n + 1) 2 となります。整理すると Sn = n(n + 1)(2n + 1) 6
問6: 自乗の合計の差 まとめると n X k=1 k2 = 12 +
22 + · · · + n2 = n(n + 1)(2n + 1) 6 n X k=1 k = 1 + 2 + · · · + n = n(n + 1) 2
問6: 自乗の合計の差 まとめると n X k=1 k2 = 12 +
22 + · · · + n2 = n(n + 1)(2n + 1) 6 n X k=1 k = 1 + 2 + · · · + n = n(n + 1) 2 (1 + 2 + · · · + 100)2 = ✓ 100(100 + 1) 2 ◆2 12 + 22 + · · · + 1002 = 100(100 + 1)(2 · 100 + 1) 6
自身のべき乗
問48: 自身のべき乗 11 + 22 + 33 + · ·
· + 1010 = 10405071317 である。では以下の級数の下10桁を求めよ。 11 + 22 + 33 + · · · + 10001000
問48: 自身のべき乗 いつものように n = 1000 における以下の数列の和を求 めてみる。 11 +
22 + 33 + · · · + nn
問48: 自身のべき乗 いつものように n = 1000 における以下の数列の和を求 めてみる。 11 +
22 + 33 + · · · + nn
問48: 自身のべき乗 •n = 1000 とかなると桁がものすごいことになる。 •C言語とかだと完全に桁あふれする。 •実際に n =
1000 の時を計算してみると...
問48: 自身のべき乗 100036819914469517709537501122764679556779368062293465458376098810023491074771619438142865909952784594586994264319129089472034 297990640767964725986043423846803832604080969103761537037623771364851006311573295146177424670558426686575960181584366644283228 455688031311454815153919097539848549664557651346585858271233640116622195618817344953167410268890832176466302030669977040862534 076609159502279137936809836930637560281385664635877375155877521346022579657984658333400734935862434233933298133457123788880928 310334876026136017595081560917946402687100524365210998086355214201424290343406856093657323107934219403186441391810123815105650 926739351576039284247250139159407346300152184381107376702171102630750469573346789782186690664846982834660741296739580179779168 360983472243224195284535256468186824036956956619282555532355807806199752768998384886337478678933158156525205917261433942460098 614325923316758337107036262555453185205416611714885822950858158961433759446327755438051838092130121883632710223140733220110974
010258021646929833176692061964608379073280762736061442808517156500628972850868896422679964719258292405858953075067457838536556 187855958968575622569234891474692281091391561983475411764835803581412867029415856566994208773628639094224154722601500447133063 011307204270428890504214262819377191859457430220214720118848634591319083375230747696601054742392887106311878302603638131903905 200825207205793366671291894623331279369709407422418787204597097644430924278218773832025749008082433007499169869823956112581112 760786390035522173784669056770734407449414526666210383981284021630344847691395707235573271662709837224522304679291974725911315 742582406485833141540094327821304295463505357404520998451222126424190355017841682455141254863759000777908253928824775165356689 988274959440589510258798553952770949351004954644542726561747839910718823868177121590423411939224748975107908594805594509880561 796372292846955426378221762516042800822884555254034449486019526711518709222776619575390721112664615014061474423397476527347561 996431185285861416781966834012473048771016200679352998575882065367727437956331349545452663271872348233949482575982107640169431 604345651211793793545646352146302119772669498355892913235757618859497751663073421286386945616420552553676731129813718251149464 946366307375921921305682356166777609373942574288393071260996216346408803882656913203216069263720618308594298797368458427649178 484311547207790040169259569411927355351102599126544603936628892174358133320008371710524117150460688354341886202404755217705526 342446950129890590193815824593863369410502481516667981368915666834119771347509438990488712679446890189385047505001120522574245 555562575056021323038791033798395033324502065323898911550701388295627776388079568721085719649389314265671310596627542214460598 805893960060360422692140140209651929425048867029798339635327946045314237554226788198919748178978067895509376319365860369089847 4826976906544473978017455720367929981796023041785852626797271283465789498383642350667978127819110846700 •n = 1000 とかなると桁がものすごいことになる。 •C言語とかだと完全に桁あふれする。 •実際に n = 1000 の時を計算してみると...
問48: 自身のべき乗 mod
問48: 自身のべき乗 5 1 ⌘ 5(mod9)
問48: 自身のべき乗 5 1 ⌘ 5(mod9) 5 2 ⌘ 5
1 · 5 = 5 · 5 = 25 ⌘ 7(mod9)
問48: 自身のべき乗 5 1 ⌘ 5(mod9) 5 2 ⌘ 5
1 · 5 = 5 · 5 = 25 ⌘ 7(mod9) 5 3 ⌘ 5 2 · 5 = 7 · 5 = 35 ⌘ 8(mod9)
問48: 自身のべき乗 5 1 ⌘ 5(mod9) 5 2 ⌘ 5
1 · 5 = 5 · 5 = 25 ⌘ 7(mod9) 5 3 ⌘ 5 2 · 5 = 7 · 5 = 35 ⌘ 8(mod9) 5 4 ⌘ 5 3 · 5 = 8 · 5 = 40 ⌘ 4(mod9)
問48: 自身のべき乗 5 1 ⌘ 5(mod9) 5 2 ⌘ 5
1 · 5 = 5 · 5 = 25 ⌘ 7(mod9) 5 3 ⌘ 5 2 · 5 = 7 · 5 = 35 ⌘ 8(mod9) 5 4 ⌘ 5 3 · 5 = 8 · 5 = 40 ⌘ 4(mod9) 5 5 ⌘ 5 4 · 5 = 4 · 5 = 20 ⌘ 2(mod9)
問48: 自身のべき乗 下10桁を求めればよいので の世界で計算して いけばOK。最大でも 未満の数にし かならない。 mod10 10 1010
= 10000000000
偶数の フィボナッチ数
問2: 偶数のフィボナッチ数 フィボナッチ数列の各項は前の2つの項から生成され る。最初の項が1, 2から始まるとすると、最初の10項は 以下のようになる。 1,2,3,5,8,13,21,34,55,89 400万を超えないフィボナッチ数列を考える時、偶数値 の合計を求めよ。
問2: 偶数のフィボナッチ数 フィボナッチ数列の一般項を求めてみます。 一般に、前の項によって次の項の値が決まるものを漸化 式、特にフィボナッチ数列のように前の2つの項によっ て次の項の値が決まるものを三項間漸化式といいます ね。
問2: 偶数のフィボナッチ数 漸化式の解き方は •特性方程式を解く •行列を使って解く の2種類がありますが、行列を使った解き方の方が面白 いのでそちらの方法で求めてみます。
問2: 偶数のフィボナッチ数 まず、フィボナッチ数列は以下のように表せますね。 F0 = 0, F1 = 1 ※問題文では初項が
1, 2 になっていますが 0, 1 の方が計算しやすいのでこうします。 Fn = Fn 2 + Fn 1(n > 1)
✓ F1 F2 ◆ = ✓ 0 1 1 1
◆ ✓ F0 F1 ◆ = ✓ F1 F0 + F1 ◆ 問2: 偶数のフィボナッチ数 行列を使っても表せます。 F0 = 0, F1 = 1
✓ F1 F2 ◆ = ✓ 0 1 1 1
◆ ✓ F0 F1 ◆ = ✓ F1 F0 + F1 ◆ F0 = 0, F1 = 1 問2: 偶数のフィボナッチ数 行列を使っても表せます。
✓ F1 F2 ◆ = ✓ 0 1 1 1
◆ ✓ F0 F1 ◆ = ✓ F1 F0 + F1 ◆ F0 = 0, F1 = 1 問2: 偶数のフィボナッチ数 行列を使っても表せます。 ✓ F2 F3 ◆ = ✓ 0 1 1 1 ◆ ✓ F1 F2 ◆ = ✓ 0 1 1 1 ◆ ✓ 0 1 1 1 ◆ ✓ F0 F1 ◆
✓ F1 F2 ◆ = ✓ 0 1 1 1
◆ ✓ F0 F1 ◆ = ✓ F1 F0 + F1 ◆ F0 = 0, F1 = 1 問2: 偶数のフィボナッチ数 行列を使っても表せます。 ✓ F2 F3 ◆ = ✓ 0 1 1 1 ◆ ✓ F1 F2 ◆ = ✓ 0 1 1 1 ◆ ✓ 0 1 1 1 ◆ ✓ F0 F1 ◆
✓ F1 F2 ◆ = ✓ 0 1 1 1
◆ ✓ F0 F1 ◆ = ✓ F1 F0 + F1 ◆ F0 = 0, F1 = 1 問2: 偶数のフィボナッチ数 行列を使っても表せます。 ✓ F2 F3 ◆ = ✓ 0 1 1 1 ◆ ✓ F1 F2 ◆ = ✓ 0 1 1 1 ◆ ✓ 0 1 1 1 ◆ ✓ F0 F1 ◆
✓ F1 F2 ◆ = ✓ 0 1 1 1
◆ ✓ F0 F1 ◆ = ✓ F1 F0 + F1 ◆ F0 = 0, F1 = 1 問2: 偶数のフィボナッチ数 行列を使っても表せます。 ✓ F2 F3 ◆ = ✓ 0 1 1 1 ◆ ✓ F1 F2 ◆ = ✓ 0 1 1 1 ◆ ✓ 0 1 1 1 ◆ ✓ F0 F1 ◆ = ✓ 0 1 1 1 ◆2 ✓ F0 F1 ◆
問2: 偶数のフィボナッチ数 一般化してみると という風に表すことができます。 F0 = 0, F1 = 1
✓ Fn Fn+1 ◆ = ✓ 0 1 1 1 ◆n ✓ F0 F1 ◆
問2: 偶数のフィボナッチ数 一般化してみると という風に表すことができます。 F0 = 0, F1 = 1
✓ Fn Fn+1 ◆ = ✓ 0 1 1 1 ◆n ✓ F0 F1 ◆ A = ✓ 0 1 1 1 ◆ と置くと を求めることができれば Fn を計算できそう。 An
問2: 偶数のフィボナッチ数 単純に を求めると n が大きくなった時にかなり大変 なので、ちょっと工夫します。 An
問2: 偶数のフィボナッチ数 対角行列のべき乗は簡単に求めることができますね。 ⇤ = 0 B B B @
1 0 . . . 0 0 2 . . . 0 . . . . . . ... . . . 0 0 . . . m 1 C C C A こういう対角行列Λが あるとすると...
問2: 偶数のフィボナッチ数 対角行列のべき乗は簡単に求めることができますね。 ⇤ = 0 B B B @
1 0 . . . 0 0 2 . . . 0 . . . . . . ... . . . 0 0 . . . m 1 C C C A ⇤n = 0 B B B @ n 1 0 . . . 0 0 n 2 . . . 0 . . . . . . ... . . . 0 0 . . . n m 1 C C C A こういう対角行列Λが あるとすると... Λのn乗はこうなる
問2: 偶数のフィボナッチ数 ここで を行列の掛け算で表してみます。 A = P⇤P 1 A =
✓ 0 1 1 1 ◆ ⇤ ( は対角行列)
問2: 偶数のフィボナッチ数 この行列 A の n 乗を計算してみると An = (P⇤P
1)n = P⇤P 1P⇤P 1 · · · P⇤P 1 = P⇤nP 1 ここで を行列の掛け算で表してみます。 A = P⇤P 1 A = ✓ 0 1 1 1 ◆ ⇤ ( は対角行列)
問2: 偶数のフィボナッチ数 この行列 A の n 乗を計算してみると An = (P⇤P
1)n = P⇤P 1P⇤P 1 · · · P⇤P 1 = P⇤nP 1 ここで を行列の掛け算で表してみます。 A = P⇤P 1 A = ✓ 0 1 1 1 ◆ ⇤ ( は対角行列)
問2: 偶数のフィボナッチ数 この行列 A の n 乗を計算してみると An = (P⇤P
1)n = P⇤P 1P⇤P 1 · · · P⇤P 1 = P⇤nP 1 ここで を行列の掛け算で表してみます。 A = P⇤P 1 A = ✓ 0 1 1 1 ◆ ⇤ ( は対角行列)
問2: 偶数のフィボナッチ数 この行列 A の n 乗を計算してみると An = (P⇤P
1)n = P⇤P 1P⇤P 1 · · · P⇤P 1 = P⇤nP 1 ここで を行列の掛け算で表してみます。 A = P⇤P 1 A = ✓ 0 1 1 1 ◆ ⇤ ( は対角行列) となるのでべき乗の計算が簡単になります。問題はどう やってこの都合の良い行列を見つけるか?
問2: 偶数のフィボナッチ数 P = ✓ p11 p21 p12 p22 ◆
= (p1, p2) とりあえず行列 を列ベクトルの集まりとしてみます。 P
問2: 偶数のフィボナッチ数 A = P⇤P 1 の両辺の右側に をかけてみると P AP
= P⇤ P = ✓ p11 p21 p12 p22 ◆ = (p1, p2) とりあえず行列 を列ベクトルの集まりとしてみます。 P となる。
問2: 偶数のフィボナッチ数 A = P⇤P 1 の両辺の右側に をかけてみると P AP
= P⇤ P = ✓ p11 p21 p12 p22 ◆ = (p1, p2) とりあえず行列 を列ベクトルの集まりとしてみます。 P A(p1, p2) = (p1, p2)⇤ となる。 を代入すると P となります。
問2: 偶数のフィボナッチ数 A(p1, p2) = (p1, p2)⇤ なので は ⇤
= ✓ 1 0 0 2 ◆ (Ap1, Ap2) = (p1, p2) ✓ 1 0 0 2 ◆ = ( 1p1, 2p2) と表せます。
問2: 偶数のフィボナッチ数 A(p1, p2) = (p1, p2)⇤ なので は ⇤
= ✓ 1 0 0 2 ◆ (Ap1, Ap2) = (p1, p2) ✓ 1 0 0 2 ◆ = ( 1p1, 2p2) と表せます。よって Ap1 = 1p1 Ap2 = 2p2 ということですね。
問2: 偶数のフィボナッチ数 Ap1 = 1p1 Ap2 = 2p2 これは要するに と
が の固有ベクトルということ。 A p1 p2 A = P⇤P 1 の は の固有ベクトルを並べた行列だと いうことがわかりました! A P そして対角行列 の対角要素は の固有値です! ⇤ A
問2: 偶数のフィボナッチ数 では の固有値と固有ベクトルを求めてみます。固有値は 以下の特性多項式を解くことで求められましたね。 A det( I A) =
0
問2: 偶数のフィボナッチ数 A det( I A) = 0 det( I
A) = det ✓✓ 0 0 ◆ ✓ 0 1 1 1 ◆◆ では の固有値と固有ベクトルを求めてみます。固有値は 以下の特性多項式を解くことで求められましたね。
問2: 偶数のフィボナッチ数 A det( I A) = 0 det( I
A) = det ✓✓ 0 0 ◆ ✓ 0 1 1 1 ◆◆ = det ✓ 1 1 1 ◆ では の固有値と固有ベクトルを求めてみます。固有値は 以下の特性多項式を解くことで求められましたね。
問2: 偶数のフィボナッチ数 A det( I A) = 0 det( I
A) = det ✓✓ 0 0 ◆ ✓ 0 1 1 1 ◆◆ = det ✓ 1 1 1 ◆ = · ( 1) ( 1) · ( 1) では の固有値と固有ベクトルを求めてみます。固有値は 以下の特性多項式を解くことで求められましたね。
問2: 偶数のフィボナッチ数 A det( I A) = 0 det( I
A) = det ✓✓ 0 0 ◆ ✓ 0 1 1 1 ◆◆ = det ✓ 1 1 1 ◆ = · ( 1) ( 1) · ( 1) では の固有値と固有ベクトルを求めてみます。固有値は 以下の特性多項式を解くことで求められましたね。
問2: 偶数のフィボナッチ数 A det( I A) = 0 det( I
A) = det ✓✓ 0 0 ◆ ✓ 0 1 1 1 ◆◆ = det ✓ 1 1 1 ◆ = · ( 1) ( 1) · ( 1) = 2 1 = 0 では の固有値と固有ベクトルを求めてみます。固有値は 以下の特性多項式を解くことで求められましたね。
問2: 偶数のフィボナッチ数 あとは を解きましょう。二次方程式の解 2 1 = 0 の公式に当てはめるだけです。
問2: 偶数のフィボナッチ数 あとは を解きましょう。二次方程式の解 2 1 = 0 の公式に当てはめるだけです。 ax
2 + bx + c = 0 x = b ± p b 2 4 ac 2 a の時 なので
問2: 偶数のフィボナッチ数 あとは を解きましょう。二次方程式の解 2 1 = 0 の公式に当てはめるだけです。 ax
2 + bx + c = 0 x = b ± p b 2 4 ac 2 a の時 なので = ( 1) ± p ( 1)2 4 · 1 · ( 1) 2 · 1 = 1 ± p 5 2 固有値が求まりました!
問2: 偶数のフィボナッチ数 1 = 1 + p 5 2 ,
2 = 1 p 5 2 とおいて を解きましょう。 次は固有ベクトルを求めます。 Ap1 = 1p1 Ap2 = 2p2
問2: 偶数のフィボナッチ数 ✓ 0 1 1 1 ◆ ✓ p11
p12 ◆ = ✓ p12 p11 + p12 ◆ = ✓ 1p11 1p12 ◆ なので という連立方程式を解きます。 p12 = 1p11 p11 + p12 = 1p12
問2: 偶数のフィボナッチ数 ✓ 0 1 1 1 ◆ ✓ p11
p12 ◆ = ✓ p12 p11 + p12 ◆ = ✓ 1p11 1p12 ◆ なので という連立方程式を解きます。 とはいうものの既に で答えは出ています。 p12 = 1p11 p12 = 1p11 p11 + p12 = 1p12
問2: 偶数のフィボナッチ数 ✓ 0 1 1 1 ◆ ✓ p11
p12 ◆ = ✓ p12 p11 + p12 ◆ = ✓ 1p11 1p12 ◆ なので という連立方程式を解きます。 とはいうものの既に で答えは出ています。 これは が決まれば自動的に も決まるということ。 p12 = 1p11 p11 p12 p12 = 1p11 p11 + p12 = 1p12
問2: 偶数のフィボナッチ数 ✓ 0 1 1 1 ◆ ✓ p11
p12 ◆ = ✓ p12 p11 + p12 ◆ = ✓ 1p11 1p12 ◆ なので という連立方程式を解きます。 とはいうものの既に で答えは出ています。 これは が決まれば自動的に も決まるということ。 なので、これ全部固有ベクトルです。 p12 = 1p11 p11 p12 p12 = 1p11 p11 + p12 = 1p12 p1 = ✓ 1 1 ◆ , p1 = ✓ 3 3 1 ◆ , p1 = ✓ 999 999 1 ◆
問2: 偶数のフィボナッチ数 2 の方の固有ベクトルも同じ理屈です。とはいえ、計算 は簡単な方がいいので、一番単純なものを固有ベクトル として選びます! p1 = ✓ 1
1 ◆ , p2 = ✓ 1 2 ◆
問2: 偶数のフィボナッチ数 最初に戻ります。フィボナッチ数列は以下のように表さ れるのでした。 ✓ Fn Fn+1 ◆ = ✓
0 1 1 1 ◆n ✓ F0 F1 ◆
問2: 偶数のフィボナッチ数 最初に戻ります。フィボナッチ数列は以下のように表さ れるのでした。 ✓ Fn Fn+1 ◆ = ✓
0 1 1 1 ◆n ✓ F0 F1 ◆ An = (P⇤P 1)n = P⇤nP 1 = ✓ 1 1 1 2 ◆ ✓ n 1 0 0 n 2 ◆ 1 p 5 ✓ 2 1 1 1 ◆
問2: 偶数のフィボナッチ数 最初に戻ります。フィボナッチ数列は以下のように表さ れるのでした。 ✓ Fn Fn+1 ◆ = ✓
0 1 1 1 ◆n ✓ F0 F1 ◆ An = (P⇤P 1)n = P⇤nP 1 = ✓ 1 1 1 2 ◆ ✓ n 1 0 0 n 2 ◆ 1 p 5 ✓ 2 1 1 1 ◆ さっき求めた固有ベクトル
問2: 偶数のフィボナッチ数 最初に戻ります。フィボナッチ数列は以下のように表さ れるのでした。 ✓ Fn Fn+1 ◆ = ✓
0 1 1 1 ◆n ✓ F0 F1 ◆ An = (P⇤P 1)n = P⇤nP 1 = ✓ 1 1 1 2 ◆ ✓ n 1 0 0 n 2 ◆ 1 p 5 ✓ 2 1 1 1 ◆ さっき求めた固有ベクトル 逆行列。計算過程は省略...
問2: 偶数のフィボナッチ数 最初に戻ります。フィボナッチ数列は以下のように表さ れるのでした。 ✓ Fn Fn+1 ◆ = ✓
0 1 1 1 ◆n ✓ F0 F1 ◆ An = (P⇤P 1)n = P⇤nP 1 = ✓ 1 1 1 2 ◆ ✓ n 1 0 0 n 2 ◆ 1 p 5 ✓ 2 1 1 1 ◆ = 1 p 5 ✓ 1 n 2 n 1 2 n 1 n 2 1 n+1 2 n+1 1 2 n+1 1 n+1 2 ◆
問2: 偶数のフィボナッチ数 ✓ Fn Fn+1 ◆ = 1 p 5
✓ 1 n 2 n 1 2 n 1 n 2 1 n+1 2 n+1 1 2 n+1 1 n+1 2 ◆ ✓ F0 F1 ◆ = 1 p 5 ✓ 1 n 2 n 1 2 n 1 n 2 1 n+1 2 n+1 1 2 n+1 1 n+1 2 ◆ ✓ 0 1 ◆ となります。
問2: 偶数のフィボナッチ数 ✓ Fn Fn+1 ◆ = 1 p 5
✓ 1 n 2 n 1 2 n 1 n 2 1 n+1 2 n+1 1 2 n+1 1 n+1 2 ◆ ✓ F0 F1 ◆ = 1 p 5 ✓ 1 n 2 n 1 2 n 1 n 2 1 n+1 2 n+1 1 2 n+1 1 n+1 2 ◆ ✓ 0 1 ◆ となります。今は が欲しいので1行目だけ計算します。 Fn Fn = 1 p 5 (( 1 n 2 n 1 2) · 0 + ( n 1 n 2 ) · 1)
問2: 偶数のフィボナッチ数 ✓ Fn Fn+1 ◆ = 1 p 5
✓ 1 n 2 n 1 2 n 1 n 2 1 n+1 2 n+1 1 2 n+1 1 n+1 2 ◆ ✓ F0 F1 ◆ = 1 p 5 ✓ 1 n 2 n 1 2 n 1 n 2 1 n+1 2 n+1 1 2 n+1 1 n+1 2 ◆ ✓ 0 1 ◆ となります。今は が欲しいので1行目だけ計算します。 Fn = 1 p 5 ( n 1 n 2 ) = 1 p 5 ( 1 + p 5 2 !n 1 p 5 2 !n ) Fn = 1 p 5 (( 1 n 2 n 1 2) · 0 + ( n 1 n 2 ) · 1)
問2: 偶数のフィボナッチ数 ✓ Fn Fn+1 ◆ = 1 p 5
✓ 1 n 2 n 1 2 n 1 n 2 1 n+1 2 n+1 1 2 n+1 1 n+1 2 ◆ ✓ F0 F1 ◆ = 1 p 5 ✓ 1 n 2 n 1 2 n 1 n 2 1 n+1 2 n+1 1 2 n+1 1 n+1 2 ◆ ✓ 0 1 ◆ となります。今は が欲しいので1行目だけ計算します。 Fn = 1 p 5 ( n 1 n 2 ) = 1 p 5 ( 1 + p 5 2 !n 1 p 5 2 !n ) Fn = 1 p 5 (( 1 n 2 n 1 2) · 0 + ( n 1 n 2 ) · 1)
問2: 偶数のフィボナッチ数 ということでフィボナッチ数列の一般項は Fn = 1 p 5 ( 1
+ p 5 2 !n 1 p 5 2 !n ) という式だとわかりました! F0 = 0, F1 = 1 初項を とした場合
問2: 偶数のフィボナッチ数 ということでフィボナッチ数列の一般項は Fn = 1 p 5 ( 1
+ p 5 2 !n 1 p 5 2 !n ) という式だとわかりました! もう少し頑張ります! F0 = 0, F1 = 1 初項を とした場合
問2: 偶数のフィボナッチ数 問題文で400万を超えないフィボナッチ数とありましたが n がいくつで400万を超えるか計算してみます。 Fn = 1 p 5
( 1 + p 5 2 !n 1 p 5 2 !n ) > 4000000
問2: 偶数のフィボナッチ数 問題文で400万を超えないフィボナッチ数とありましたが n がいくつで400万を超えるか計算してみます。 Fn = 1 p 5
( 1 + p 5 2 !n 1 p 5 2 !n ) > 4000000 ( 1 + p 5 2 !n 1 p 5 2 !n ) > 4000000 p 5
問2: 偶数のフィボナッチ数 問題文で400万を超えないフィボナッチ数とありましたが n がいくつで400万を超えるか計算してみます。 Fn = 1 p 5
( 1 + p 5 2 !n 1 p 5 2 !n ) > 4000000 ( 1 + p 5 2 !n 1 p 5 2 !n ) > 4000000 p 5 この両辺の対数をとってみます。
問2: 偶数のフィボナッチ数 log ( 1 + p 5 2 !n
1 p 5 2 !n ) > log 4000000 p 5
問2: 偶数のフィボナッチ数 この式の左辺の第二項は n が大きくなると 0 に近づくので 簡単のため無視します。 log (
1 + p 5 2 !n 1 p 5 2 !n ) > log 4000000 p 5
問2: 偶数のフィボナッチ数 この式の左辺の第二項は n が大きくなると 0 に近づくので 簡単のため無視します。 log (
1 + p 5 2 !n 1 p 5 2 !n ) > log 4000000 p 5 log 1 + p 5 2 !n > log 4000000 p 5
問2: 偶数のフィボナッチ数 この式の左辺の第二項は n が大きくなると 0 に近づくので 簡単のため無視します。 log (
1 + p 5 2 !n 1 p 5 2 !n ) > log 4000000 p 5 log 1 + p 5 2 !n > log 4000000 p 5 n log 1 + p 5 2 ! > log 4000000 p 5
問2: 偶数のフィボナッチ数 では両辺の対数を実際に計算してみます。 = 0.6020 + 6 + 0.3495 =
6.9515 log 4000000 p 5 = log 2 2 · 10 6 · 5 1 2 = 2 log 2 + 6 log 10 + 0 . 5 log 5 = 2 · 0.301 + 6 · 1 + 0.5 · 0.699 log 1 + p 5 2 ! = log ✓ 1 + 2 . 236 2 ◆ = log ✓ 3 . 236 2 ◆ = log 1 . 618 = 0.2068
問2: 偶数のフィボナッチ数 では両辺の対数を実際に計算してみます。 = 0.6020 + 6 + 0.3495 =
6.9515 log 4000000 p 5 = log 2 2 · 10 6 · 5 1 2 = 2 log 2 + 6 log 10 + 0 . 5 log 5 = 2 · 0.301 + 6 · 1 + 0.5 · 0.699 log 1 + p 5 2 ! = log ✓ 1 + 2 . 236 2 ◆ = log ✓ 3 . 236 2 ◆ = log 1 . 618 = 0.2068
問2: 偶数のフィボナッチ数 では両辺の対数を実際に計算してみます。 = 0.6020 + 6 + 0.3495 =
6.9515 log 4000000 p 5 = log 2 2 · 10 6 · 5 1 2 = 2 log 2 + 6 log 10 + 0 . 5 log 5 = 2 · 0.301 + 6 · 1 + 0.5 · 0.699 log 1 + p 5 2 ! = log ✓ 1 + 2 . 236 2 ◆ = log ✓ 3 . 236 2 ◆ = log 1 . 618 = 0.2068
問2: 偶数のフィボナッチ数 では両辺の対数を実際に計算してみます。 = 0.6020 + 6 + 0.3495 =
6.9515 log 4000000 p 5 = log 2 2 · 10 6 · 5 1 2 = 2 log 2 + 6 log 10 + 0 . 5 log 5 = 2 · 0.301 + 6 · 1 + 0.5 · 0.699 log 1 + p 5 2 ! = log ✓ 1 + 2 . 236 2 ◆ = log ✓ 3 . 236 2 ◆ = log 1 . 618 = 0.2068
問2: 偶数のフィボナッチ数 では両辺の対数を実際に計算してみます。 = 0.6020 + 6 + 0.3495 =
6.9515 log 4000000 p 5 = log 2 2 · 10 6 · 5 1 2 = 2 log 2 + 6 log 10 + 0 . 5 log 5 = 2 · 0.301 + 6 · 1 + 0.5 · 0.699 log 1 + p 5 2 ! = log ✓ 1 + 2 . 236 2 ◆ = log ✓ 3 . 236 2 ◆ = log 1 . 618 = 0.2068
問2: 偶数のフィボナッチ数 では両辺の対数を実際に計算してみます。 = 0.6020 + 6 + 0.3495 =
6.9515 log 4000000 p 5 = log 2 2 · 10 6 · 5 1 2 = 2 log 2 + 6 log 10 + 0 . 5 log 5 = 2 · 0.301 + 6 · 1 + 0.5 · 0.699 log 1 + p 5 2 ! = log ✓ 1 + 2 . 236 2 ◆ = log ✓ 3 . 236 2 ◆ = log 1 . 618 = 0.2068
問2: 偶数のフィボナッチ数 では両辺の対数を実際に計算してみます。 = 0.6020 + 6 + 0.3495 =
6.9515 log 4000000 p 5 = log 2 2 · 10 6 · 5 1 2 = 2 log 2 + 6 log 10 + 0 . 5 log 5 = 2 · 0.301 + 6 · 1 + 0.5 · 0.699 log 1 + p 5 2 ! = log ✓ 1 + 2 . 236 2 ◆ = log ✓ 3 . 236 2 ◆ = log 1 . 618 = 0.2068
問2: 偶数のフィボナッチ数 では両辺の対数を実際に計算してみます。 = 0.6020 + 6 + 0.3495 =
6.9515 log 4000000 p 5 = log 2 2 · 10 6 · 5 1 2 = 2 log 2 + 6 log 10 + 0 . 5 log 5 = 2 · 0.301 + 6 · 1 + 0.5 · 0.699 log 1 + p 5 2 ! = log ✓ 1 + 2 . 236 2 ◆ = log ✓ 3 . 236 2 ◆ = log 1 . 618 = 0.2068
問2: 偶数のフィボナッチ数 よって 4000000 より大きい n は n log 1
+ p 5 2 ! > log 4000000 p 5 0.2068n > 6.9515 n > 33.2607 · · ·
問2: 偶数のフィボナッチ数 よって 4000000 より大きい n は n log 1
+ p 5 2 ! > log 4000000 p 5 0.2068n > 6.9515 n > 33.2607 · · · n は整数なので が 4000000 を超えない最大のフィボ ナッチ数。(n が 0 から始まる場合) F33
問2: 偶数のフィボナッチ数 までの偶数の和を考えてみます。数列を眺めてると F33 F0 = 0 F1 = 1
F2 = 1 F3 = 2 F4 = 3 F5 = 5 F6 = 8 F7 = 13 F8 = 21 F9 = 34
問2: 偶数のフィボナッチ数 までの偶数の和を考えてみます。数列を眺めてると F33 F0 = 0 F1 = 1
F2 = 1 F3 = 2 F4 = 3 F5 = 5 F6 = 8 F7 = 13 F8 = 21 F9 = 34 偶数 偶数 偶数
問2: 偶数のフィボナッチ数 までの偶数の和を考えてみます。数列を眺めてると どうも n が 3 の倍数の時が偶数っぽい。 F33 F0
= 0 F1 = 1 F2 = 1 F3 = 2 F4 = 3 F5 = 5 F6 = 8 F7 = 13 F8 = 21 F9 = 34 偶数 偶数 偶数
問2: 偶数のフィボナッチ数 Fn = 1 p 5 ( 1 +
p 5 2 !n 1 p 5 2 !n ) 今 ですが、 長ったらしいので、以下のように置き換えます。 = 1 + p 5 2 , ˆ = 1 p 5 2 ※ちなみに っていうの は黄金比としてよく知ら れてますね。
問2: 偶数のフィボナッチ数 Fn = 1 p 5 ( 1 +
p 5 2 !n 1 p 5 2 !n ) 今 ですが、 長ったらしいので、以下のように置き換えます。 すると以下のように表せます。 = 1 + p 5 2 , ˆ = 1 p 5 2 ※ちなみに っていうの は黄金比としてよく知ら れてますね。 Fn = n ˆn p 5
問2: 偶数のフィボナッチ数 n が 3 の倍数のフィボナッチ数列の和を考えてみると F3 + F6 +
· · · + F30 + F33 = 11 X k=1 F3k
問2: 偶数のフィボナッチ数 n が 3 の倍数のフィボナッチ数列の和を考えてみると これに一般項を代入してみると F3 + F6
+ · · · + F30 + F33 = 11 X k=1 F3k 11 X k=1 F3k = 11 X k=1 3k ˆ3k p 5 = 1 p 5 11 X k=1 3k 11 X k=1 ˆ3k !
問2: 偶数のフィボナッチ数 n が 3 の倍数のフィボナッチ数列の和を考えてみると なんかこれ、等比級数っぽくないですか? これに一般項を代入してみると F3 +
F6 + · · · + F30 + F33 = 11 X k=1 F3k 11 X k=1 F3k = 11 X k=1 3k ˆ3k p 5 = 1 p 5 11 X k=1 3k 11 X k=1 ˆ3k !
問2: 偶数のフィボナッチ数 等比級数にはこういう公式がありますよね。 これを代入してみましょう。 n X k=1 ark 1 =
a(rn 1) r 1
問2: 偶数のフィボナッチ数 ※ とするとこうなります。 の場合も同じ。 等比級数にはこういう公式がありますよね。 これを代入してみましょう。 n X k=1
ark 1 = a(rn 1) r 1 a = 3, r = 3 ˆ 11 X k=1 F3k = 1 p 5 3(( 3)11 1) 3 1 ˆ3((ˆ3)11 1) ˆ3 1 !
問2: 偶数のフィボナッチ数 ※ とするとこうなります。 の場合も同じ。 ここで、カッコの中の分数の式をまとめたい衝動に駆られ ます。でも分母の値が違うのでまとめれない・・・ 等比級数にはこういう公式がありますよね。 これを代入してみましょう。 n
X k=1 ark 1 = a(rn 1) r 1 a = 3, r = 3 ˆ 11 X k=1 F3k = 1 p 5 3(( 3)11 1) 3 1 ˆ3((ˆ3)11 1) ˆ3 1 !
問2: 偶数のフィボナッチ数 さて、ここで は の解でしたよねー? 固有値を求めるとこでやりました。と、いうことは , ˆ x 2
x 1 = 0 2 1 = 0
問2: 偶数のフィボナッチ数 , ˆ x 2 x 1 = 0
2 1 = 0 2 = + 1 この式から以下の式が導かれます。 さて、ここで は の解でしたよねー? 固有値を求めるとこでやりました。と、いうことは
問2: 偶数のフィボナッチ数 , ˆ x 2 x 1 = 0
2 1 = 0 2 = + 1 3 = 2 + = + 1 + = 2 + 1 この式から以下の式が導かれます。 さて、ここで は の解でしたよねー? 固有値を求めるとこでやりました。と、いうことは
問2: 偶数のフィボナッチ数 , ˆ x 2 x 1 = 0
2 1 = 0 2 = + 1 3 = 2 + = + 1 + = 2 + 1 この式から以下の式が導かれます。 さて、ここで は の解でしたよねー? 固有値を求めるとこでやりました。と、いうことは
問2: 偶数のフィボナッチ数 , ˆ x 2 x 1 = 0
2 1 = 0 2 = + 1 3 = 2 + = + 1 + = 2 + 1 この式から以下の式が導かれます。 つまりこういうことです。 3 1 = 2 ※ も同じ理屈です。 ˆ さて、ここで は の解でしたよねー? 固有値を求めるとこでやりました。と、いうことは
問2: 偶数のフィボナッチ数 11 X k=1 F3k = 1 p 5
3( 33 1) 2 ˆ3(ˆ33 1) 2ˆ ! = 1 2 · 1 p 5 ⇣ 2( 33 1) ˆ2(ˆ33 1) ⌘ = 1 2 · 2( 33 1) ˆ2(ˆ33 1) p 5 = 1 2 · 35 2 ˆ35 + ˆ2 p 5 = 1 2 35 ˆ35 p 5 2 ˆ2 p 5 !
問2: 偶数のフィボナッチ数 11 X k=1 F3k = 1 p 5
3( 33 1) 2 ˆ3(ˆ33 1) 2ˆ ! = 1 2 · 1 p 5 ⇣ 2( 33 1) ˆ2(ˆ33 1) ⌘ = 1 2 · 2( 33 1) ˆ2(ˆ33 1) p 5 = 1 2 · 35 2 ˆ35 + ˆ2 p 5 = 1 2 35 ˆ35 p 5 2 ˆ2 p 5 !
問2: 偶数のフィボナッチ数 11 X k=1 F3k = 1 p 5
3( 33 1) 2 ˆ3(ˆ33 1) 2ˆ ! = 1 2 · 1 p 5 ⇣ 2( 33 1) ˆ2(ˆ33 1) ⌘ = 1 2 · 2( 33 1) ˆ2(ˆ33 1) p 5 = 1 2 · 35 2 ˆ35 + ˆ2 p 5 = 1 2 35 ˆ35 p 5 2 ˆ2 p 5 !
問2: 偶数のフィボナッチ数 11 X k=1 F3k = 1 p 5
3( 33 1) 2 ˆ3(ˆ33 1) 2ˆ ! = 1 2 · 1 p 5 ⇣ 2( 33 1) ˆ2(ˆ33 1) ⌘ = 1 2 · 2( 33 1) ˆ2(ˆ33 1) p 5 = 1 2 · 35 2 ˆ35 + ˆ2 p 5 = 1 2 35 ˆ35 p 5 2 ˆ2 p 5 !
問2: 偶数のフィボナッチ数 11 X k=1 F3k = 1 p 5
3( 33 1) 2 ˆ3(ˆ33 1) 2ˆ ! = 1 2 · 1 p 5 ⇣ 2( 33 1) ˆ2(ˆ33 1) ⌘ = 1 2 · 2( 33 1) ˆ2(ˆ33 1) p 5 = 1 2 · 35 2 ˆ35 + ˆ2 p 5 = 1 2 35 ˆ35 p 5 2 ˆ2 p 5 !
問2: 偶数のフィボナッチ数 答えが見えてきました。この式、わかりますか? 1 2 35 ˆ35 p 5 2
ˆ2 p 5 !
問2: 偶数のフィボナッチ数 答えが見えてきました。この式、わかりますか? ↓ ↓ 1 2 35 ˆ35 p
5 2 ˆ2 p 5 ! F35 F2
問2: 偶数のフィボナッチ数 答えが見えてきました。この式、わかりますか? ↓ ↓ 1 2 35 ˆ35 p
5 2 ˆ2 p 5 ! F35 F2 11 X k=1 F3k = 1 2 (F35 F2) つまり 4000000 を超えないフィボナッチ数の偶数項の和 はこうなります。
問2: 偶数のフィボナッチ数 お疲れ様でした
問2: 偶数のフィボナッチ数 おまけ F35 = 35 ˆ 35 p 5
= 1 p 5 8 < : 1 + p 5 2 !35 1 p 5 2 !35 9 = ;
問2: 偶数のフィボナッチ数 おまけ F35 = 35 ˆ 35 p 5
= 1 p 5 8 < : 1 + p 5 2 !35 1 p 5 2 !35 9 = ; (1 + p 5)35 = 35C0135 p 5 0 + 35C1134 p 5 1 + · · · + 35C3411 p 5 34 + 35C3510 p 5 35
問2: 偶数のフィボナッチ数 おまけ F35 = 35 ˆ 35 p 5
= 1 p 5 8 < : 1 + p 5 2 !35 1 p 5 2 !35 9 = ; (1 + p 5)35 = 35C0135 p 5 0 + 35C1134 p 5 1 + · · · + 35C3411 p 5 34 + 35C3510 p 5 35 = 35C0 + · · · + 35C34517 +35C35517 p 5 +35C150 p 5
問2: 偶数のフィボナッチ数 おまけ F35 = 35 ˆ 35 p 5
= 1 p 5 8 < : 1 + p 5 2 !35 1 p 5 2 !35 9 = ; (1 + p 5)35 = 35C0135 p 5 0 + 35C1134 p 5 1 + · · · + 35C3411 p 5 34 + 35C3510 p 5 35 = 35C0 + · · · + 35C34517 +35C35517 p 5 +35C150 p 5 = (35C050 + 35C251 + · · · + 35C32516 + 35C34517) + p 5(· · · ) 整数部 無理数部
問2: 偶数のフィボナッチ数 おまけ F35 = 35 ˆ 35 p 5
= 1 p 5 8 < : 1 + p 5 2 !35 1 p 5 2 !35 9 = ; (1 + p 5)35 = 35C0135 p 5 0 + 35C1134 p 5 1 + · · · + 35C3411 p 5 34 + 35C3510 p 5 35 = 35C0 + · · · + 35C34517 +35C35517 p 5 +35C150 p 5 = (35C050 + 35C251 + · · · + 35C32516 + 35C34517) + p 5(· · · ) (1 p 5)35 = (35C050 + 35C251 + · · · + 35C32516 + 35C34517) p 5(· · · ) 整数部 無理数部 整数部 無理数部
問2: 偶数のフィボナッチ数 おまけ F35 = 35 ˆ 35 p 5
= 1 p 5 8 < : 1 + p 5 2 !35 1 p 5 2 !35 9 = ; (1 + p 5)35 = 35C0135 p 5 0 + 35C1134 p 5 1 + · · · + 35C3411 p 5 34 + 35C3510 p 5 35 = 35C0 + · · · + 35C34517 +35C35517 p 5 +35C150 p 5 = (35C050 + 35C251 + · · · + 35C32516 + 35C34517) + p 5(· · · ) (1 p 5)35 = (35C050 + 35C251 + · · · + 35C32516 + 35C34517) p 5(· · · ) 整数部 無理数部 整数部 無理数部
問2: 偶数のフィボナッチ数 おまけ F35 = 35 ˆ 35 p 5
= 1 p 5 8 < : 1 + p 5 2 !35 1 p 5 2 !35 9 = ; (1 + p 5)35 = 35C0135 p 5 0 + 35C1134 p 5 1 + · · · + 35C3411 p 5 34 + 35C3510 p 5 35 = 35C0 + · · · + 35C34517 +35C35517 p 5 +35C150 p 5 = (35C050 + 35C251 + · · · + 35C32516 + 35C34517) + p 5(· · · ) (1 p 5)35 = (35C050 + 35C251 + · · · + 35C32516 + 35C34517) p 5(· · · ) 整数部 無理数部 整数部 無理数部 (1 + p 5)35 (1 p 5)35 = 2 p 5(· · · )
問2: 偶数のフィボナッチ数 おまけ F35 = 35 ˆ 35 p 5
= 1 p 5 8 < : 1 + p 5 2 !35 1 p 5 2 !35 9 = ; (1 + p 5)35 = 35C0135 p 5 0 + 35C1134 p 5 1 + · · · + 35C3411 p 5 34 + 35C3510 p 5 35 = 35C0 + · · · + 35C34517 +35C35517 p 5 +35C150 p 5 = (35C050 + 35C251 + · · · + 35C32516 + 35C34517) + p 5(· · · ) (1 p 5)35 = (35C050 + 35C251 + · · · + 35C32516 + 35C34517) p 5(· · · ) 整数部 無理数部 整数部 無理数部 (1 + p 5)35 (1 p 5)35 = 2 p 5(· · · )
問2: 偶数のフィボナッチ数 おまけ F35 = 35 ˆ 35 p 5
= 1 p 5 8 < : 1 + p 5 2 !35 1 p 5 2 !35 9 = ; (1 + p 5)35 = 35C0135 p 5 0 + 35C1134 p 5 1 + · · · + 35C3411 p 5 34 + 35C3510 p 5 35 = 35C0 + · · · + 35C34517 +35C35517 p 5 +35C150 p 5 = (35C050 + 35C251 + · · · + 35C32516 + 35C34517) + p 5(· · · ) (1 p 5)35 = (35C050 + 35C251 + · · · + 35C32516 + 35C34517) p 5(· · · ) 整数部 無理数部 整数部 無理数部 (1 + p 5)35 (1 p 5)35 = 2 p 5(· · · )
数学とプログラミングの 世界を楽しもう おわり