RXOERSGLT737B
Zdjęcie przedstawia słonecznik.

I_R_W14_M09_Java Ciąg Fibonnaciego

Ź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, jak zmienia się odchylenie od wartości złotej liczby dla kolejnych wyrazów ciągu Fibonacciego.

Linia 1. import java kropka util kropka ArrayList średnik. Linia 2. import java kropka util kropka List średnik. Linia 3. public class FibonacciGoldenRatio otwórz nawias klamrowy. Linia 4. public static void main otwórz nawias okrągły String otwórz nawias kwadratowy zamknij nawias kwadratowy args zamknij nawias okrągły otwórz nawias klamrowy. Linia 5. fibonacciZlota otwórz nawias okrągły 15 zamknij nawias okrągły średnik prawy ukośnik prawy ukośnik Przykład dla n znak równości 15. Linia 6. zamknij nawias klamrowy. Linia 7. public static void fibonacciZlota otwórz nawias okrągły int n zamknij nawias okrągły otwórz nawias klamrowy. Linia 8. List otwórz nawias ostrokątny Integer zamknij nawias ostrokątny fibonacci znak równości new ArrayList otwórz nawias ostrokątny zamknij nawias ostrokątny otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 9. List otwórz nawias ostrokątny Double zamknij nawias ostrokątny zlota znak równości new ArrayList otwórz nawias ostrokątny zamknij nawias ostrokątny otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 10. List otwórz nawias ostrokątny Integer zamknij nawias ostrokątny listaX znak równości new ArrayList otwórz nawias ostrokątny zamknij nawias ostrokątny otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 12. prawy ukośnik prawy ukośnik 1 kropka Obliczanie wartości ciągu Fibonacciego. Linia 13. for otwórz nawias okrągły int i znak równości 0 średnik i otwórz nawias ostrokątny n średnik i plus plus zamknij nawias okrągły otwórz nawias klamrowy. Linia 14. fibonacci kropka add otwórz nawias okrągły rekFib otwórz nawias okrągły i zamknij nawias okrągły zamknij nawias okrągły średnik. Linia 15. zamknij nawias klamrowy. Linia 17. prawy ukośnik prawy ukośnik 2 kropka Obliczanie stosunku otwórz nawias okrągły złotej liczby zamknij nawias okrągły dla x od 2 do n minus 1. Linia 18. for otwórz nawias okrągły int x znak równości 2 średnik x otwórz nawias ostrokątny n średnik x plus plus zamknij nawias okrągły otwórz nawias klamrowy. Linia 19. listaX kropka add otwórz nawias okrągły x zamknij nawias okrągły średnik. Linia 20. prawy ukośnik prawy ukośnik Rzutowanie na double przecinek aby uniknąć dzielenia całkowitego. Linia 21. double ratio znak równości otwórz nawias okrągły double zamknij nawias okrągły fibonacci kropka get otwórz nawias okrągły x zamknij nawias okrągły prawy ukośnik fibonacci kropka get otwórz nawias okrągły x minus 1 zamknij nawias okrągły średnik. Linia 22. zlota kropka add otwórz nawias okrągły ratio zamknij nawias okrągły średnik. Linia 23. zamknij nawias klamrowy. Linia 25. prawy ukośnik prawy ukośnik 3 kropka Wypisanie wyników otwórz nawias okrągły odpowiednik print otwórz nawias okrągły zlota zamknij nawias okrągły zamknij nawias okrągły. Linia 26. System kropka out kropka println otwórz nawias okrągły cudzysłów Stosunki kolejnych wyrazów dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 27. System kropka out kropka println otwórz nawias okrągły zlota zamknij nawias okrągły średnik. Linia 29. zamknij nawias klamrowy. Linia 31. prawy ukośnik prawy ukośnik Definicja funkcji pomocniczej otwórz nawias okrągły rekurencyjny Fibonacci zamknij nawias okrągły. Linia 32. public static int rekFib otwórz nawias okrągły int n zamknij nawias okrągły otwórz nawias klamrowy. Linia 33. if otwórz nawias okrągły n znak równości znak równości 0 zamknij nawias okrągły return 0 średnik. Linia 34. if otwórz nawias okrągły n znak równości znak równości 1 zamknij nawias okrągły return 1 średnik. Linia 35. return rekFib otwórz nawias okrągły n minus 1 zamknij nawias okrągły plus rekFib otwórz nawias okrągły n minus 2 zamknij nawias okrągły średnik. Linia 36. zamknij nawias klamrowy. Linia 37. zamknij nawias klamrowy.

Zapoznajmy się z wykresem 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.