RXOERSGLT737B
Zdjęcie przedstawia słonecznik.

PYI_R_W14_M09 Ciąg Fibonacciego czyli jak rozmnażają się króliki 

Źródło: Jason Leung, domena publiczna.

Złota liczba

Ciąg Fibonacciego jest powiązany z tzw. złotą liczbą. W przybliżeniu wynosi ona 1,618033988… Dzieląc wyraz ciągu o indeksie n przez wyraz o indeksie n - 1, otrzymamy iloraz oscylujący wokół 1,618. W miarę tego, jak zwiększają się wartości dzielnej i dzielnika, zmniejsza się odchylenie od wartości złotej liczby.

Przykład 1

Napiszmy program, który dla zadanej liczby elementów ciągu Fibonacciego wypisze kolejne przybliżenia złotej liczby oraz przygotuje wykres obrazujący, jak zmienia się odchylenie od wartości złotej liczby dla kolejnych wyrazów ciągu Fibonacciego, wykorzystując moduł matplotlib.

Linia 1. def fibonacci podkreślnik zlota otwórz nawias okrągły n zamknij nawias okrągły dwukropek. Linia 2. kratka wczytanie modułu rysującego. Linia 3. import matplotlib kropka pyplot as plt. Linia 5. kratka definicja funkcji pomocniczej. Linia 6. def rek podkreślnik fib otwórz nawias okrągły n zamknij nawias okrągły dwukropek. Linia 7. if n znak równości znak równości 0 dwukropek. Linia 8. return 0. Linia 9. elif n znak równości znak równości 1 dwukropek. Linia 10. return 1. Linia 11. else dwukropek. Linia 12. return rek podkreślnik fib otwórz nawias okrągły n minus 1 zamknij nawias okrągły plus rek podkreślnik fib otwórz nawias okrągły n minus 2 zamknij nawias okrągły. Linia 14. lista podkreślnik x znak równości otwórz nawias kwadratowy x for x in range otwórz nawias okrągły 2 przecinek n zamknij nawias okrągły zamknij nawias kwadratowy. Linia 15. fibonacci znak równości otwórz nawias kwadratowy rek podkreślnik fib otwórz nawias okrągły x zamknij nawias okrągły for x in range otwórz nawias okrągły n zamknij nawias okrągły zamknij nawias kwadratowy. Linia 16. zlota znak równości otwórz nawias kwadratowy otwórz nawias okrągły fibonacci otwórz nawias kwadratowy x zamknij nawias kwadratowy prawy ukośnik fibonacci otwórz nawias kwadratowy x minus 1 zamknij nawias kwadratowy zamknij nawias okrągły for x in range otwórz nawias okrągły 2 przecinek n zamknij nawias okrągły zamknij nawias kwadratowy. Linia 18. kratka wypisujemy na ekranie listę wartości. Linia 19. print otwórz nawias okrągły zlota zamknij nawias okrągły. Linia 21. kratka wyświetlamy okno z wykresem. Linia 22. kratka cudzysłów o dwukropek cudzysłów minus punkty połączone przerywaną linią. Linia 23. plt kropka plot otwórz nawias okrągły lista podkreślnik x przecinek zlota przecinek cudzysłów o dwukropek cudzysłów zamknij nawias okrągły. Linia 24. plt kropka grid otwórz nawias okrągły True zamknij nawias okrągły. Linia 25. plt kropka xlabel otwórz nawias okrągły apostrof n apostrof zamknij nawias okrągły. Linia 26. plt kropka ylabel otwórz nawias okrągły apostrof stosunek wyrazu ciągu Fibonacciego o indeksie n do wyrazu o indeksie n minus 1 apostrof zamknij nawias okrągły. Linia 27. plt kropka show otwórz nawias okrągły zamknij nawias okrągły. Linia 29. kratka przykład wykonania. Linia 30. fibonacci podkreślnik zlota otwórz nawias okrągły 24 zamknij nawias okrągły. Linia 31. otwórz nawias kwadratowy 1 kropka 0 przecinek 2 kropka 0 przecinek 1 kropka 5 przecinek 1 kropka 6666666666666667 przecinek 1 kropka 6 przecinek 1 kropka 625 przecinek. Linia 32. 1 kropka 6153846153846154 przecinek 1 kropka 619047619047619 przecinek. Linia 33. 1 kropka 6176470588235294 przecinek 1 kropka 6181818181818182 przecinek. Linia 34. 1 kropka 6179775280898876 przecinek 1 kropka 6180555555555556 przecinek. Linia 35. 1 kropka 6180257510729614 przecinek 1 kropka 6180371352785146 przecinek. Linia 36. 1 kropka 618032786885246 przecinek 1 kropka 618034447821682 przecinek. Linia 37. 1 kropka 6180338134001253 przecinek 1 kropka 618034055727554 przecinek. Linia 38. 1 kropka 6180339631667064 przecinek 1 kropka 6180339985218033 przecinek. Linia 39. 1 kropka 618033985017358 przecinek 1 kropka 6180339901755971 zamknij nawias kwadratowy.

Wynikiem będzie wykres prezentujący zależność odchylenia od wartości złotej liczby, dla kolejnych wyrazów ciągu Fibonacciego:

R1JCJ8RBTBQ96
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.