Fibonacci n-step number sequences: Difference between revisions

(New draft task and Python solution)
 
Line 16:
 
=={{header|Python}}==
<lang python>>>> def fiblike(start):
addnum = len(start)
def fibber(n):
try:
return fibber.memo[n]
except:
ans = sum(fibber(i) for i in range(n-addnum, n))
fibber.memo.append(ans)
return ans
fibber.memo = start[:]
return fibber
 
>>> fibo = fiblike([1,1])
>>> [fibo(i) for i in range(10)]
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
>>> lucas = fiblike([2,1])
>>> [lucas(i) for i in range(10)]
[2, 1, 3, 4, 7, 11, 18, 29, 47, 76]
>>> f3= fiblike([1,1,2]) # tribo-
>>> [f3(i) for i in range(10)]
[1, 1, 2, 4, 7, 13, 24, 44, 81, 149]
>>> f4 = fiblike([1,1,2,4]) # tetra-
>>> [f4(i) for i in range(10)]
[1, 1, 2, 4, 8, 15, 29, 56, 108, 208]
>>> f5 = fiblike([1,1,2,4,8]) # penta-
>>> [f5(i) for i in range(10)]
[1, 1, 2, 4, 8, 16, 31, 61, 120, 236]
>>> f6 = fiblike([1,1,2,4,8,16]) # hexa-
>>> [f6(i) for i in range(10)]
[1, 1, 2, 4, 8, 16, 32, 63, 125, 248]
>>> f7 = fiblike([1,1,2,4,8,16,32]) # hepta
>>> [f7(i) for i in range(10)]
[1, 1, 2, 4, 8, 16, 32, 64, 127, 253]
>>> </lang>
Anonymous user