No.2 Even Fibonacci numbers
問題.
Q. 直前の2項の和を次の項として生成されるフィボナッチ数列において, 1, 2, から始めたときの最初の10項は次のようになる.
\begin{align*}
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, \ldots
\end{align*}
この数列の4,000,000未満の項で偶数のものの総和はいくらか.
考え方とプログラム例(Python3)
1. 4,000,000 未満の項すべてを調べる
ループを用いて 4,000,000 未満の項を順に生成し, 偶数であるもののみを足し上げていきます.a = 1 b = 2 c = a + b Sum = 2 while c <= 4000000: if c % 2 == 0: Sum += c a = b b = c c = a + b print(Sum)
2. 偶数項のみの数列を考える
この数列を見ると,1 (奇数), 2(偶数), 3(奇数), 5(奇数), 8(偶数), 13(奇数), …
と 2個おきに偶数項がでてきます.
もとの数列を として, とおきます.
が偶数項のみ取り出した数列になります.
すると,
また,
これを解いて の漸化式を求めると,
となるので, これをもとに の項を順に求めて足していくと,
a = 2 b = 8 c = a + 4 * b Sum = a + b while c <= 4000000: Sum += c a = b b = c c = a + 4 * b print(Sum)