Advertisement
Guest User

Untitled

a guest
Sep 5th, 2024
30
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.92 KB | None | 0 0
  1. from typing import Generator, List
  2.  
  3.  
  4. def fib() -> Generator:
  5.     """Generates fibonacci sequence."""
  6.     a = 0
  7.     b = a + 1
  8.  
  9.     yield a
  10.     yield b
  11.  
  12.     while True:
  13.         c = a + b
  14.         a = b
  15.         b = c
  16.         yield c
  17.  
  18.  
  19. def from_position(seq: Generator, start_from: int = 0) -> Generator:
  20.     """Generates sequence starting from position."""
  21.     counter = 0
  22.     while True:
  23.         counter += 1
  24.         if start_from < counter:
  25.             yield next(seq)
  26.         else:
  27.             next(seq)
  28.  
  29.  
  30. def get_fib_array(length: int, start_from: int = 0) -> List[int]:
  31.     """Generates fibonacci sequence of length starting from position."""
  32.     _seq = fib()
  33.     gen_from_pos = from_position(_seq, start_from)
  34.     return [next(gen_from_pos) for _ in range(length)]
  35.  
  36.  
  37. if __name__ == '__main__':
  38.     _sequence = fib()
  39.     print([next(_sequence) for _ in range(10)])
  40.     print(get_fib_array(5, 0))
  41.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement