私が思うに、Project Euler の問題 2 (フィボナッチ数列で 4,000,000 までのすべての偶数を見つける)に対する有効な解決策だと思います。これはより低い数値では機能しますが、4,000,000 で実行するとクラッシュします。これが計算上難しいことは理解していますが、クラッシュするのではなく、計算に時間がかかるだけではないでしょうか? または、私のコードに問題がありますか?
import functools
def fib(limit):
sequence = []
for i in range(limit):
if(i < 3):
sequence.append(i)
else:
sequence.append(sequence[i-1] + sequence[i-2])
return sequence
def add_even(x, y):
if(y % 2 == 0):
return x + y
return x + 0
print(functools.reduce(add_even,fib(4000000)))