Problem 25 「1000桁のフィボナッチ数」 †
フィボナッチ数列は以下の漸化式で定義される:
Fn = Fn-1 + Fn-2, ただし F1 = 1, F2 = 1.
最初の12項は以下である.
- F1 = 1
- F2 = 1
- F3 = 2
- F4 = 3
- F5 = 5
- F6 = 8
- F7 = 13
- F8 = 21
- F9 = 34
- F10 = 55
- F11 = 89
- F12 = 144
12番目の項, F12が3桁になる最初の項である.
1000桁になる最初の項の番号を答えよ.
http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2025
解法
Log計算とフィボナッチ数列の近似式ででます。
実は私の使ってる式正確な値より1ずれる可能性があるのですが。
4桁で1000(これはありえませんが話の都合です)
なのに999として計算して桁数3となってるような場合です。
Xの値でそれはないと確認できるので安心して答えZを導出できます。
[1] 7 ?- Y is 0.5+sqrt(5)/2,X is (999+log10(sqrt(5)))/log10(Y),Z is floor(X+1).
Y = 1.618033988749895,
X = 4781.859270753069,
Z = 4782.
0 件のコメント:
コメントを投稿