プログラマのための数学勉強会@福岡で話したスライドです。
数学とプログラミングの世界を楽しもうプログラマのための数学勉強会@福岡2015.09.04@tkengo
View Slide
立石 賢吾Twitter : @tkengogithub : @tkengoRubyと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)Xk=13k +N(5)Xk=15kN(15)Xk=115k✓N(d) =1000 1d◆
問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)S3S3
問1: 3と5の倍数各項が一定数ずつ増えていく数列のことを等比数列と言いますね。等比数列の和というと...= 3 + 6 + 9 + ... + 996 + 999= 999 + 996 + 993 + ... + 6 + 3例: 3 ずつ増えていく数列(公差 d = 3)+S3S3
問1: 3と5の倍数各項が一定数ずつ増えていく数列のことを等比数列と言いますね。等比数列の和というと...= 3 + 6 + 9 + ... + 996 + 999= 999 + 996 + 993 + ... + 6 + 3= 1002 + 1002 + 1002 + ... + 1002 + 1002例: 3 ずつ増えていく数列(公差 d = 3)+S3S32S3
問1: 3と5の倍数各項が一定数ずつ増えていく数列のことを等比数列と言いますね。等比数列の和というと...= 3 + 6 + 9 + ... + 996 + 999= 999 + 996 + 993 + ... + 6 + 3= 1002 + 1002 + 1002 + ... + 1002 + 1002(= 333) 個例: 3 ずつ増えていく数列(公差 d = 3)+1000 13S3S32S3
問1: 3と5の倍数各項が一定数ずつ増えていく数列のことを等比数列と言いますね。等比数列の和というと...= 3 + 6 + 9 + ... + 996 + 999= 999 + 996 + 993 + ... + 6 + 3= 1002 + 1002 + 1002 + ... + 1002 + 1002例: 3 ずつ増えていく数列(公差 d = 3)+(= 333) 個1000 13S3S32S3S3 =12· 1002 · 333 = 501 · 333 = 166833
問1: 3と5の倍数一般的に公差 d の数列が n 個ある場合の総和は、以下のようにして計算できますね。例: d ずつ増えていく数列(公差 d)= d + 2d + ... + (n-1)d + ndSn
問1: 3と5の倍数一般的に公差 d の数列が n 個ある場合の総和は、以下のようにして計算できますね。例: d ずつ増えていく数列(公差 d)= d + 2d + ... + (n-1)d + ndSn= nd + (n-1)d + ... + 2d + dSn
問1: 3と5の倍数一般的に公差 d の数列が n 個ある場合の総和は、以下のようにして計算できますね。例: d ずつ増えていく数列(公差 d)= d + 2d + ... + (n-1)d + ndSn= nd + (n-1)d + ... + 2d + dSn+
問1: 3と5の倍数一般的に公差 d の数列が n 個ある場合の総和は、以下のようにして計算できますね。例: d ずつ増えていく数列(公差 d)= d + 2d + ... + (n-1)d + ndSn= nd + (n-1)d + ... + 2d + dSn= (n+1)d + (n+1)d + ... + (n+1)d + (n+1)d2Sn+
問1: 3と5の倍数一般的に公差 d の数列が n 個ある場合の総和は、以下のようにして計算できますね。例: d ずつ増えていく数列(公差 d)= d + 2d + ... + (n-1)d + ndSn= nd + (n-1)d + ... + 2d + dSn= (n+1)d + (n+1)d + ... + (n+1)d + (n+1)d2Snn 個+
問1: 3と5の倍数一般的に公差 d の数列が n 個ある場合の総和は、以下のようにして計算できますね。例: d ずつ増えていく数列(公差 d)= d + 2d + ... + (n-1)d + ndSn= nd + (n-1)d + ... + 2d + dSn= (n+1)d + (n+1)d + ... + (n+1)d + (n+1)d2Snn 個+Sn =12· (n + 1)d · n =n(n + 1)d2
問1: 3と5の倍数等差数列の和の公式を使うと...N(3)Xk=13k +N(5)Xk=15kN(15)Xk=115k✓N(d) =1000 1d◆
問1: 3と5の倍数等差数列の和の公式を使うと...N(3)Xk=13k +N(5)Xk=15kN(15)Xk=115k✓N(d) =1000 1d◆=N(3)((N(3) + 1)32+N(5)(N(5) + 1)52N(15)(N(15) + 1)152
自乗の合計の差
問6: 自乗の合計の差最初の10個の自然数の”自乗の総和”は最初の10個の自然数の”総和の自乗”はこれらの差は である。では、最初の100個の自然数の”自乗の総和”と”総和の自乗”の差を求めよ。12 + 22 + · · · + 102 = 385(1 + 2 + · · · + 10)2 = 552 = 30253025 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 + 429 + (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 + 429 + (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 + 429 + (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 + 423S4 = (2 · 4 + 1) ·4(4 + 1)2となるのがわかります。
問6: 自乗の合計の差とおくと、前頁の結果からS4 = 12 + 22 + 32 + 423S4 = (2 · 4 + 1) ·4(4 + 1)2となるのがわかります。この 4 を n に一般化してみると3Sn = (2n + 1) ·n(n + 1)2となります。
問6: 自乗の合計の差とおくと、前頁の結果からS4 = 12 + 22 + 32 + 423S4 = (2 · 4 + 1) ·4(4 + 1)2となるのがわかります。この 4 を n に一般化してみると3Sn = (2n + 1) ·n(n + 1)2となります。整理するとSn =n(n + 1)(2n + 1)6
問6: 自乗の合計の差まとめるとnXk=1k2 = 12 + 22 + · · · + n2 =n(n + 1)(2n + 1)6nXk=1k = 1 + 2 + · · · + n =n(n + 1)2
問6: 自乗の合計の差まとめるとnXk=1k2 = 12 + 22 + · · · + n2 =n(n + 1)(2n + 1)6nXk=1k = 1 + 2 + · · · + n =n(n + 1)2(1 + 2 + · · · + 100)2 =✓100(100 + 1)2◆212 + 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 とかなると桁がものすごいことになる。•C言語とかだと完全に桁あふれする。•実際に n = 1000 の時を計算してみると...
問48: 自身のべき乗1000368199144695177095375011227646795567793680622934654583760988100234910747716194381428659099527845945869942643191290894720342979906407679647259860434238468038326040809691037615370376237713648510063115732951461774246705584266865759601815843666442832284556880313114548151539190975398485496645576513465858582712336401166221956188173449531674102688908321764663020306699770408625340766091595022791379368098369306375602813856646358773751558775213460225796579846583334007349358624342339332981334571237888809283103348760261360175950815609179464026871005243652109980863552142014242903434068560936573231079342194031864413918101238151056509267393515760392842472501391594073463001521843811073767021711026307504695733467897821866906648469828346607412967395801797791683609834722432241952845352564681868240369569566192825555323558078061997527689983848863374786789331581565252059172614339424600986143259233167583371070362625554531852054166117148858229508581589614337594463277554380518380921301218836327102231407332201109740102580216469298331766920619646083790732807627360614428085171565006289728508688964226799647192582924058589530750674578385365561878559589685756225692348914746922810913915619834754117648358035814128670294158565669942087736286390942241547226015004471330630113072042704288905042142628193771918594574302202147201188486345913190833752307476966010547423928871063118783026036381319039052008252072057933666712918946233312793697094074224187872045970976444309242782187738320257490080824330074991698698239561125811127607863900355221737846690567707344074494145266662103839812840216303448476913957072355732716627098372245223046792919747259113157425824064858331415400943278213042954635053574045209984512221264241903550178416824551412548637590007779082539288247751653566899882749594405895102587985539527709493510049546445427265617478399107188238681771215904234119392247489751079085948055945098805617963722928469554263782217625160428008228845552540344494860195267115187092227766195753907211126646150140614744233974765273475619964311852858614167819668340124730487710162006793529985758820653677274379563313495454526632718723482339494825759821076401694316043456512117937935456463521463021197726694983558929132357576188594977516630734212863869456164205525536767311298137182511494649463663073759219213056823561667776093739425742883930712609962163464088038826569132032160692637206183085942987973684584276491784843115472077900401692595694119273553511025991265446039366288921743581333200083717105241171504606883543418862024047552177055263424469501298905901938158245938633694105024815166679813689156668341197713475094389904887126794468901893850475050011205225742455555625750560213230387910337983950333245020653238989115507013882956277763880795687210857196493893142656713105966275422144605988058939600603604226921401402096519294250488670297983396353279460453142375542267881989197481789780678955093763193658603690898474826976906544473978017455720367929981796023041785852626797271283465789498383642350667978127819110846700•n = 1000 とかなると桁がものすごいことになる。•C言語とかだと完全に桁あふれする。•実際に n = 1000 の時を計算してみると...
問48: 自身のべき乗mod
問48: 自身のべき乗51 ⌘5(mod9)
問48: 自身のべき乗51 ⌘5(mod9)52 ⌘51 ·5 = 5·5 = 25⌘7(mod9)
問48: 自身のべき乗51 ⌘5(mod9)52 ⌘51 ·5 = 5·5 = 25⌘7(mod9)53 ⌘52 ·5 = 7·5 = 35⌘8(mod9)
問48: 自身のべき乗51 ⌘5(mod9)52 ⌘51 ·5 = 5·5 = 25⌘7(mod9)53 ⌘52 ·5 = 7·5 = 35⌘8(mod9)54 ⌘53 ·5 = 8·5 = 40⌘4(mod9)
問48: 自身のべき乗51 ⌘5(mod9)52 ⌘51 ·5 = 5·5 = 25⌘7(mod9)53 ⌘52 ·5 = 7·5 = 35⌘8(mod9)54 ⌘53 ·5 = 8·5 = 40⌘4(mod9)55 ⌘54 ·5 = 4·5 = 20⌘2(mod9)
問48: 自身のべき乗下10桁を求めればよいので の世界で計算していけばOK。最大でも 未満の数にしかならない。mod10101010 = 10000000000
偶数のフィボナッチ数
問2: 偶数のフィボナッチ数フィボナッチ数列の各項は前の2つの項から生成される。最初の項が1, 2から始まるとすると、最初の10項は以下のようになる。1,2,3,5,8,13,21,34,55,89400万を超えないフィボナッチ数列を考える時、偶数値の合計を求めよ。
問2: 偶数のフィボナッチ数フィボナッチ数列の一般項を求めてみます。一般に、前の項によって次の項の値が決まるものを漸化式、特にフィボナッチ数列のように前の2つの項によって次の項の値が決まるものを三項間漸化式といいますね。
問2: 偶数のフィボナッチ数漸化式の解き方は•特性方程式を解く•行列を使って解くの2種類がありますが、行列を使った解き方の方が面白いのでそちらの方法で求めてみます。
問2: 偶数のフィボナッチ数まず、フィボナッチ数列は以下のように表せますね。F0 = 0, F1 = 1※問題文では初項が 1, 2 になっていますが 0, 1 の方が計算しやすいのでこうします。Fn = Fn 2 + Fn 1(n > 1)
✓F1F2◆=✓0 11 1◆ ✓F0F1◆=✓F1F0 + F1◆問2: 偶数のフィボナッチ数行列を使っても表せます。F0 = 0, F1 = 1
✓F1F2◆=✓0 11 1◆ ✓F0F1◆=✓F1F0 + F1◆F0 = 0, F1 = 1問2: 偶数のフィボナッチ数行列を使っても表せます。
✓F1F2◆=✓0 11 1◆ ✓F0F1◆=✓F1F0 + F1◆F0 = 0, F1 = 1問2: 偶数のフィボナッチ数行列を使っても表せます。✓F2F3◆=✓0 11 1◆ ✓F1F2◆=✓0 11 1◆ ✓0 11 1◆ ✓F0F1◆
✓F1F2◆=✓0 11 1◆ ✓F0F1◆=✓F1F0 + F1◆F0 = 0, F1 = 1問2: 偶数のフィボナッチ数行列を使っても表せます。✓F2F3◆=✓0 11 1◆ ✓F1F2◆=✓0 11 1◆ ✓0 11 1◆ ✓F0F1◆=✓0 11 1◆2✓F0F1◆
問2: 偶数のフィボナッチ数一般化してみるとという風に表すことができます。F0 = 0, F1 = 1✓FnFn+1◆=✓0 11 1◆n✓F0F1◆
問2: 偶数のフィボナッチ数一般化してみるとという風に表すことができます。F0 = 0, F1 = 1✓FnFn+1◆=✓0 11 1◆n✓F0F1◆A =✓0 11 1◆と置くと を求めることができればFnを計算できそう。An
問2: 偶数のフィボナッチ数単純に を求めると n が大きくなった時にかなり大変なので、ちょっと工夫します。An
問2: 偶数のフィボナッチ数対角行列のべき乗は簡単に求めることができますね。⇤ =0BBB@1 0 . . . 00 2 . . . 0............0 0 . . . m1CCCAこういう対角行列Λがあるとすると...
問2: 偶数のフィボナッチ数対角行列のべき乗は簡単に求めることができますね。⇤ =0BBB@1 0 . . . 00 2 . . . 0............0 0 . . . m1CCCA⇤n =0BBB@n10 . . . 00 n2. . . 0............0 0 . . . nm1CCCAこういう対角行列Λがあるとすると...Λのn乗はこうなる
問2: 偶数のフィボナッチ数ここで を行列の掛け算で表してみます。A = P⇤P 1A =✓0 11 1◆⇤( は対角行列)
問2: 偶数のフィボナッチ数この行列 A の n 乗を計算してみるとAn = (P⇤P 1)n = P⇤P 1P⇤P 1 · · · P⇤P 1 = P⇤nP 1ここで を行列の掛け算で表してみます。A = P⇤P 1A =✓0 11 1◆⇤( は対角行列)
問2: 偶数のフィボナッチ数この行列 A の n 乗を計算してみるとAn = (P⇤P 1)n = P⇤P 1P⇤P 1 · · · P⇤P 1 = P⇤nP 1ここで を行列の掛け算で表してみます。A = P⇤P 1A =✓0 11 1◆⇤( は対角行列)となるのでべき乗の計算が簡単になります。問題はどうやってこの都合の良い行列を見つけるか?
問2: 偶数のフィボナッチ数P =✓p11 p21p12 p22◆= (p1, p2)とりあえず行列 を列ベクトルの集まりとしてみます。P
問2: 偶数のフィボナッチ数A = P⇤P 1 の両辺の右側に をかけてみるとPAP = P⇤P =✓p11 p21p12 p22◆= (p1, p2)とりあえず行列 を列ベクトルの集まりとしてみます。Pとなる。
問2: 偶数のフィボナッチ数A = P⇤P 1 の両辺の右側に をかけてみるとPAP = P⇤P =✓p11 p21p12 p22◆= (p1, p2)とりあえず行列 を列ベクトルの集まりとしてみます。PA(p1, p2) = (p1, p2)⇤となる。 を代入するとPとなります。
問2: 偶数のフィボナッチ数A(p1, p2) = (p1, p2)⇤なので は⇤ =✓1 00 2◆(Ap1, Ap2) = (p1, p2)✓1 00 2◆= ( 1p1, 2p2)と表せます。
問2: 偶数のフィボナッチ数A(p1, p2) = (p1, p2)⇤なので は⇤ =✓1 00 2◆(Ap1, Ap2) = (p1, p2)✓1 00 2◆= ( 1p1, 2p2)と表せます。よってAp1 = 1p1Ap2 = 2p2ということですね。
問2: 偶数のフィボナッチ数Ap1 = 1p1Ap2 = 2p2これは要するに と が の固有ベクトルということ。Ap1 p2A = P⇤P 1 の は の固有ベクトルを並べた行列だということがわかりました!APそして対角行列 の対角要素は の固有値です!⇤ A
問2: 偶数のフィボナッチ数では の固有値と固有ベクトルを求めてみます。固有値は以下の特性多項式を解くことで求められましたね。Adet( I A) = 0
問2: 偶数のフィボナッチ数Adet( I A) = 0det( I A) = det✓✓00◆ ✓0 11 1◆◆では の固有値と固有ベクトルを求めてみます。固有値は以下の特性多項式を解くことで求められましたね。
問2: 偶数のフィボナッチ数Adet( I A) = 0det( I A) = det✓✓00◆ ✓0 11 1◆◆= det✓11 1◆では の固有値と固有ベクトルを求めてみます。固有値は以下の特性多項式を解くことで求められましたね。
問2: 偶数のフィボナッチ数Adet( I A) = 0det( I A) = det✓✓00◆ ✓0 11 1◆◆= det✓11 1◆= · ( 1) ( 1) · ( 1)では の固有値と固有ベクトルを求めてみます。固有値は以下の特性多項式を解くことで求められましたね。
問2: 偶数のフィボナッチ数Adet( I A) = 0det( I A) = det✓✓00◆ ✓0 11 1◆◆= det✓11 1◆= · ( 1) ( 1) · ( 1)= 2 1 = 0では の固有値と固有ベクトルを求めてみます。固有値は以下の特性多項式を解くことで求められましたね。
問2: 偶数のフィボナッチ数あとは を解きましょう。二次方程式の解2 1 = 0の公式に当てはめるだけです。
問2: 偶数のフィボナッチ数あとは を解きましょう。二次方程式の解2 1 = 0の公式に当てはめるだけです。ax2 +bx+c= 0x= b±pb2 4ac2aの時 なので
問2: 偶数のフィボナッチ数あとは を解きましょう。二次方程式の解2 1 = 0の公式に当てはめるだけです。ax2 +bx+c= 0x= b±pb2 4ac2aの時 なので=( 1) ±p( 1)2 4 · 1 · ( 1)2 · 1=1 ±p52固有値が求まりました!
問2: 偶数のフィボナッチ数1 =1 +p52, 2 =1p52とおいてを解きましょう。次は固有ベクトルを求めます。Ap1 = 1p1Ap2 = 2p2
問2: 偶数のフィボナッチ数✓0 11 1◆ ✓p11p12◆=✓p12p11 + p12◆=✓1p111p12◆なのでという連立方程式を解きます。p12 = 1p11p11 + p12 = 1p12
問2: 偶数のフィボナッチ数✓0 11 1◆ ✓p11p12◆=✓p12p11 + p12◆=✓1p111p12◆なのでという連立方程式を解きます。とはいうものの既に で答えは出ています。p12 = 1p11p12 = 1p11p11 + p12 = 1p12
問2: 偶数のフィボナッチ数✓0 11 1◆ ✓p11p12◆=✓p12p11 + p12◆=✓1p111p12◆なのでという連立方程式を解きます。とはいうものの既に で答えは出ています。これは が決まれば自動的に も決まるということ。p12 = 1p11p11 p12p12 = 1p11p11 + p12 = 1p12
問2: 偶数のフィボナッチ数✓0 11 1◆ ✓p11p12◆=✓p12p11 + p12◆=✓1p111p12◆なのでという連立方程式を解きます。とはいうものの既に で答えは出ています。これは が決まれば自動的に も決まるということ。なので、これ全部固有ベクトルです。p12 = 1p11p11 p12p12 = 1p11p11 + p12 = 1p12p1 =✓11◆, p1 =✓33 1◆, p1 =✓999999 1◆
問2: 偶数のフィボナッチ数2の方の固有ベクトルも同じ理屈です。とはいえ、計算は簡単な方がいいので、一番単純なものを固有ベクトルとして選びます!p1 =✓11◆, p2 =✓12◆
問2: 偶数のフィボナッチ数最初に戻ります。フィボナッチ数列は以下のように表されるのでした。✓FnFn+1◆=✓0 11 1◆n✓F0F1◆
問2: 偶数のフィボナッチ数最初に戻ります。フィボナッチ数列は以下のように表されるのでした。✓FnFn+1◆=✓0 11 1◆n✓F0F1◆An = (P⇤P 1)n = P⇤nP 1=✓1 11 2◆ ✓n100 n2◆1p5✓2 11 1◆
問2: 偶数のフィボナッチ数最初に戻ります。フィボナッチ数列は以下のように表されるのでした。✓FnFn+1◆=✓0 11 1◆n✓F0F1◆An = (P⇤P 1)n = P⇤nP 1=✓1 11 2◆ ✓n100 n2◆1p5✓2 11 1◆さっき求めた固有ベクトル
問2: 偶数のフィボナッチ数最初に戻ります。フィボナッチ数列は以下のように表されるのでした。✓FnFn+1◆=✓0 11 1◆n✓F0F1◆An = (P⇤P 1)n = P⇤nP 1=✓1 11 2◆ ✓n100 n2◆1p5✓2 11 1◆さっき求めた固有ベクトル 逆行列。計算過程は省略...
問2: 偶数のフィボナッチ数最初に戻ります。フィボナッチ数列は以下のように表されるのでした。✓FnFn+1◆=✓0 11 1◆n✓F0F1◆An = (P⇤P 1)n = P⇤nP 1=✓1 11 2◆ ✓n100 n2◆1p5✓2 11 1◆=1p5✓1n2n1 2n1n21n+12n+11 2n+11n+12◆
問2: 偶数のフィボナッチ数✓FnFn+1◆=1p5✓1n2n1 2n1n21n+12n+11 2n+11n+12◆ ✓F0F1◆=1p5✓1n2n1 2n1n21n+12n+11 2n+11n+12◆ ✓01◆となります。
問2: 偶数のフィボナッチ数✓FnFn+1◆=1p5✓1n2n1 2n1n21n+12n+11 2n+11n+12◆ ✓F0F1◆=1p5✓1n2n1 2n1n21n+12n+11 2n+11n+12◆ ✓01◆となります。今は が欲しいので1行目だけ計算します。FnFn =1p5(( 1n2n1 2) · 0 + ( n1n2) · 1)
問2: 偶数のフィボナッチ数✓FnFn+1◆=1p5✓1n2n1 2n1n21n+12n+11 2n+11n+12◆ ✓F0F1◆=1p5✓1n2n1 2n1n21n+12n+11 2n+11n+12◆ ✓01◆となります。今は が欲しいので1行目だけ計算します。Fn=1p5( n1n2) =1p5(1 +p52!n1p52!n)Fn =1p5(( 1n2n1 2) · 0 + ( n1n2) · 1)
問2: 偶数のフィボナッチ数ということでフィボナッチ数列の一般項はFn =1p5(1 +p52!n1p52!n)という式だとわかりました!F0 = 0, F1 = 1初項を とした場合
問2: 偶数のフィボナッチ数ということでフィボナッチ数列の一般項はFn =1p5(1 +p52!n1p52!n)という式だとわかりました!もう少し頑張ります!F0 = 0, F1 = 1初項を とした場合
問2: 偶数のフィボナッチ数問題文で400万を超えないフィボナッチ数とありましたがn がいくつで400万を超えるか計算してみます。Fn =1p5(1 +p52!n1p52!n)> 4000000
問2: 偶数のフィボナッチ数問題文で400万を超えないフィボナッチ数とありましたがn がいくつで400万を超えるか計算してみます。Fn =1p5(1 +p52!n1p52!n)> 4000000(1 +p52!n1p52!n)> 4000000p5
問2: 偶数のフィボナッチ数問題文で400万を超えないフィボナッチ数とありましたがn がいくつで400万を超えるか計算してみます。Fn =1p5(1 +p52!n1p52!n)> 4000000(1 +p52!n1p52!n)> 4000000p5この両辺の対数をとってみます。
問2: 偶数のフィボナッチ数log(1 +p52!n1p52!n)>log 4000000p5
問2: 偶数のフィボナッチ数この式の左辺の第二項は n が大きくなると 0 に近づくので簡単のため無視します。log(1 +p52!n1p52!n)>log 4000000p5
問2: 偶数のフィボナッチ数この式の左辺の第二項は n が大きくなると 0 に近づくので簡単のため無視します。log(1 +p52!n1p52!n)>log 4000000p5log1 +p52!n>log 4000000p5
問2: 偶数のフィボナッチ数この式の左辺の第二項は n が大きくなると 0 に近づくので簡単のため無視します。log(1 +p52!n1p52!n)>log 4000000p5log1 +p52!n>log 4000000p5nlog1 +p52!>log 4000000p5
問2: 偶数のフィボナッチ数では両辺の対数を実際に計算してみます。= 0.6020 + 6 + 0.3495= 6.9515log 4000000p5= log 22 ·106 ·512= 2 log 2 + 6 log 10 + 0.5 log 5= 2 · 0.301 + 6 · 1 + 0.5 · 0.699log1 +p52!= log✓1 + 2.2362◆= log✓3.2362◆= log 1.618= 0.2068
問2: 偶数のフィボナッチ数よって 4000000 より大きい n はnlog1 +p52!>log 4000000p50.2068n > 6.9515n > 33.2607 · · ·
問2: 偶数のフィボナッチ数よって 4000000 より大きい n はnlog1 +p52!>log 4000000p50.2068n > 6.9515n > 33.2607 · · ·n は整数なので が 4000000 を超えない最大のフィボナッチ数。(n が 0 から始まる場合)F33
問2: 偶数のフィボナッチ数までの偶数の和を考えてみます。数列を眺めてるとF33F0 = 0F1 = 1F2 = 1F3 = 2F4 = 3F5 = 5F6 = 8F7 = 13F8 = 21F9 = 34
問2: 偶数のフィボナッチ数までの偶数の和を考えてみます。数列を眺めてるとF33F0 = 0F1 = 1F2 = 1F3 = 2F4 = 3F5 = 5F6 = 8F7 = 13F8 = 21F9 = 34偶数偶数偶数
問2: 偶数のフィボナッチ数までの偶数の和を考えてみます。数列を眺めてるとどうも n が 3 の倍数の時が偶数っぽい。F33F0 = 0F1 = 1F2 = 1F3 = 2F4 = 3F5 = 5F6 = 8F7 = 13F8 = 21F9 = 34偶数偶数偶数
問2: 偶数のフィボナッチ数Fn =1p5(1 +p52!n1p52!n)今 ですが、長ったらしいので、以下のように置き換えます。=1 +p52, ˆ =1p52※ちなみに っていうの は黄金比としてよく知ら れてますね。
問2: 偶数のフィボナッチ数Fn =1p5(1 +p52!n1p52!n)今 ですが、長ったらしいので、以下のように置き換えます。すると以下のように表せます。=1 +p52, ˆ =1p52※ちなみに っていうの は黄金比としてよく知ら れてますね。Fn =n ˆnp5
問2: 偶数のフィボナッチ数n が 3 の倍数のフィボナッチ数列の和を考えてみるとF3 + F6 + · · · + F30 + F33 =11Xk=1F3k
問2: 偶数のフィボナッチ数n が 3 の倍数のフィボナッチ数列の和を考えてみるとこれに一般項を代入してみるとF3 + F6 + · · · + F30 + F33 =11Xk=1F3k11Xk=1F3k =11Xk=13k ˆ3kp5=1p511Xk=13k11Xk=1ˆ3k!
問2: 偶数のフィボナッチ数n が 3 の倍数のフィボナッチ数列の和を考えてみるとなんかこれ、等比級数っぽくないですか?これに一般項を代入してみるとF3 + F6 + · · · + F30 + F33 =11Xk=1F3k11Xk=1F3k =11Xk=13k ˆ3kp5=1p511Xk=13k11Xk=1ˆ3k!
問2: 偶数のフィボナッチ数等比級数にはこういう公式がありますよね。これを代入してみましょう。nXk=1ark 1 =a(rn 1)r 1
問2: 偶数のフィボナッチ数※ とするとこうなります。 の場合も同じ。等比級数にはこういう公式がありますよね。これを代入してみましょう。nXk=1ark 1 =a(rn 1)r 1a = 3, r = 3 ˆ11Xk=1F3k =1p53(( 3)11 1)3 1ˆ3((ˆ3)11 1)ˆ3 1!
問2: 偶数のフィボナッチ数※ とするとこうなります。 の場合も同じ。ここで、カッコの中の分数の式をまとめたい衝動に駆られます。でも分母の値が違うのでまとめれない・・・等比級数にはこういう公式がありますよね。これを代入してみましょう。nXk=1ark 1 =a(rn 1)r 1a = 3, r = 3 ˆ11Xk=1F3k =1p53(( 3)11 1)3 1ˆ3((ˆ3)11 1)ˆ3 1!
問2: 偶数のフィボナッチ数さて、ここで は の解でしたよねー?固有値を求めるとこでやりました。と、いうことは, ˆx2x1 = 02 1 = 0
問2: 偶数のフィボナッチ数, ˆx2x1 = 02 1 = 02 = + 1この式から以下の式が導かれます。さて、ここで は の解でしたよねー?固有値を求めるとこでやりました。と、いうことは
問2: 偶数のフィボナッチ数, ˆx2x1 = 02 1 = 02 = + 13 = 2 + = + 1 + = 2 + 1この式から以下の式が導かれます。さて、ここで は の解でしたよねー?固有値を求めるとこでやりました。と、いうことは
問2: 偶数のフィボナッチ数, ˆx2x1 = 02 1 = 02 = + 13 = 2 + = + 1 + = 2 + 1この式から以下の式が導かれます。つまりこういうことです。3 1 = 2 ※ も同じ理屈です。ˆさて、ここで は の解でしたよねー?固有値を求めるとこでやりました。と、いうことは
問2: 偶数のフィボナッチ数11Xk=1F3k =1p53( 33 1)2ˆ3(ˆ33 1)2ˆ!=12·1p5⇣2( 33 1) ˆ2(ˆ33 1)⌘=12·2( 33 1) ˆ2(ˆ33 1)p5=12·35 2 ˆ35 + ˆ2p5=1235 ˆ35p52 ˆ2p5!
問2: 偶数のフィボナッチ数答えが見えてきました。この式、わかりますか?1235 ˆ35p52 ˆ2p5!
問2: 偶数のフィボナッチ数答えが見えてきました。この式、わかりますか?↓ ↓1235 ˆ35p52 ˆ2p5!F35 F2
問2: 偶数のフィボナッチ数答えが見えてきました。この式、わかりますか?↓ ↓1235 ˆ35p52 ˆ2p5!F35 F211Xk=1F3k =12(F35 F2)つまり 4000000 を超えないフィボナッチ数の偶数項の和はこうなります。
問2: 偶数のフィボナッチ数お疲れ様でした
問2: 偶数のフィボナッチ数 おまけF35 =35 ˆ35p5=1p58<:1 +p52!351p52!359=;
問2: 偶数のフィボナッチ数 おまけF35 =35 ˆ35p5=1p58<:1 +p52!351p52!359=;(1 +p5)35 = 35C0135p50+ 35C1134p51+ · · · + 35C3411p534+ 35C3510p535
問2: 偶数のフィボナッチ数 おまけF35 =35 ˆ35p5=1p58<:1 +p52!351p52!359=;(1 +p5)35 = 35C0135p50+ 35C1134p51+ · · · + 35C3411p534+ 35C3510p535= 35C0+ · · · + 35C34517+35C35517p5+35C150p5
問2: 偶数のフィボナッチ数 おまけF35 =35 ˆ35p5=1p58<:1 +p52!351p52!359=;(1 +p5)35 = 35C0135p50+ 35C1134p51+ · · · + 35C3411p534+ 35C3510p535= 35C0+ · · · + 35C34517+35C35517p5+35C150p5= (35C050 + 35C251 + · · · + 35C32516 + 35C34517) +p5(· · · )整数部 無理数部
問2: 偶数のフィボナッチ数 おまけF35 =35 ˆ35p5=1p58<:1 +p52!351p52!359=;(1 +p5)35 = 35C0135p50+ 35C1134p51+ · · · + 35C3411p534+ 35C3510p535= 35C0+ · · · + 35C34517+35C35517p5+35C150p5= (35C050 + 35C251 + · · · + 35C32516 + 35C34517) +p5(· · · )(1p5)35 = (35C050 + 35C251 + · · · + 35C32516 + 35C34517)p5(· · · )整数部 無理数部整数部 無理数部
問2: 偶数のフィボナッチ数 おまけF35 =35 ˆ35p5=1p58<:1 +p52!351p52!359=;(1 +p5)35 = 35C0135p50+ 35C1134p51+ · · · + 35C3411p534+ 35C3510p535= 35C0+ · · · + 35C34517+35C35517p5+35C150p5= (35C050 + 35C251 + · · · + 35C32516 + 35C34517) +p5(· · · )(1p5)35 = (35C050 + 35C251 + · · · + 35C32516 + 35C34517)p5(· · · )整数部 無理数部整数部 無理数部(1 +p5)35 (1p5)35 = 2p5(· · · )
数学とプログラミングの世界を楽しもうおわり