RosettaCodeData/Task/Fibonacci-n-step-number-sequences/Python/fibonacci-n-step-number-sequences-3.py

20 lines
563 B
Python
Raw Permalink Normal View History

2023-07-01 11:58:00 -04:00
from itertools import islice, cycle
2025-02-27 18:35:13 -05:00
def fiblike(init_values=(0, 1)):
tail = list(init_values)
yield from tail
for i in cycle(range(len(tail))):
2023-07-01 11:58:00 -04:00
tail[i] = x = sum(tail)
yield x
2025-02-27 18:35:13 -05:00
print([*islice(fiblike(), 10)])
2023-07-01 11:58:00 -04:00
lucas = fiblike([2, 1])
2025-02-27 18:35:13 -05:00
print([*islice(lucas, 10)])
suffixes = dict(enumerate('fibo tribo tetra penta hexa hepta octo nona deca'.split(), start=2))
2023-07-01 11:58:00 -04:00
2025-02-27 18:35:13 -05:00
for name, n in suffixes.items():
fib = fiblike([1] + [2 ** i for i in range(n-1)])
2023-07-01 11:58:00 -04:00
items = list(islice(fib, 15))
2025-02-27 18:35:13 -05:00
print(f'n={n:>2}, {name:>5}nacci -> {items} ...')