This commit is contained in:
Ingy döt Net 2013-04-10 21:29:02 -07:00
parent 764da6cbbb
commit db842d013d
19005 changed files with 197040 additions and 7 deletions

View file

@ -0,0 +1,10 @@
from math import *
def analytic_fibonacci(n):
sqrt_5 = sqrt(5);
p = (1 + sqrt_5) / 2;
q = 1/p;
return int( (p**n + q**n) / sqrt_5 + 0.5 )
for i in range(1,31):
print analytic_fibonacci(i),

View file

@ -0,0 +1,8 @@
def fibIter(n):
if n < 2:
return n
fibPrev = 1
fib = 1
for num in xrange(2, n):
fibPrev, fib = fib, fib + fibPrev
return fib

View file

@ -0,0 +1,5 @@
def fibRec(n):
if n < 2:
return n
else:
return fibRec(n-1) + fibRec(n-2)

View file

@ -0,0 +1,11 @@
def fibMemo():
pad = {0:0, 1:1}
def func(n):
if n not in pad:
pad[n] = func(n-1) + func(n-2)
return pad[n]
return func
fm = fibMemo()
for i in range(1,31):
print fm(i),

View file

@ -0,0 +1,5 @@
def fibGen():
f0, f1 = 0, 1
while True:
yield f0
f0, f1 = f1, f0+f1

View file

@ -0,0 +1,14 @@
>>> fg = fibGen()
>>> for x in range(9):
print fg.next()
0
1
1
2
3
5
8
13
21
>>>