フィボナッチ数列Fnは次のように定義されます。 F1 = 1 F2 = 1 Fn+2 = Fn+1 + Fn F2 = 2とする流儀もあるようです。 フィボナッチ数列はいろいろなところに出てくるためか、Project Eulerでもしばしば取り上げられます。 フィボナッチ数列をPythonで生成するには、F0 = 0と考えて、 def gen_fib(): a, b = 0, 1 while True: yield b a, b = b, a + b n項を求めるにこれを使うと、 N = 100000 print next(islice(gen_fib(), N - 1, None)) n項を直接求めるときは行列を使うと速くなります。定義から、 となるので、An-1をバイナリ法で求めればよいです。 def mul(A, B): def f(i, k): return sum(A[i][j]