Author's photo
Anonymný autor
informatika

Generátor Fibonacciho postupnosti

Vytvor generátor fibonacci(n), ktorý vráti prvých n čísel Fibonacciho postupnosti.
Over funkciu v cykle for aj s next().

1 odpoveď
Predpokladám, že otázka sa vzťahuje na Python, keďže to je asi najbežnejšie učený jazyk na školách. Keďže chceme vytvoriť generátor vieme že budeme používať kľúčové slovo "yield". Potom už len napíšeme funkciu ktorá nám teda vytvorí Fibonacciho postupnosť, takže každé ďalsie čislo je súčtom predošlých 2 - toto urobíme napr. ako v príklade, čo som poskytol. Ak to chceš z nejkakého dôvodu viac optimalizovať, kľudne do toho. Taktiež som ako prvé čislo postupnosti použil 0, toto sa dá tiež zmeniť podla potreby. Potom som to už len overil spôsobmi, ktoré boli zadané.

# Def of generator (using 0 as first number)
def fibonacci(n):
a, b = 1, 0
for _ in range(2, n + 2):
a, b = b, a + b
yield a

# How to use:
for num in fibonacci(17):
print(num)

# Using next()
fib = fibonacci(17)
for num in range(17):
print(next(fib))