R7L2RZA2MV5A1
Zdjęcie przedstawia słonecznik.

I_R_W14_M09_Java Ciąg Fibonnaciego

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

Ciąg Fibonacciego – definicja

Ciąg Fibonacciego to ciąg złożony z liczb naturalnych o następujących cechach:

  • pierwszy element ciągu jest równy 0,

  • drugi element ciągu jest równy 1,

  • każdy kolejny element ciągu jest sumą dwóch elementów go poprzedzających.

Definicja rekurencyjna ciągu Fibonacciego ma następującą postać:

F n = { 0 dla  n = 0 1 dla  n = 1 F n 1 + F n 2 dla  n > 1

Na podstawie definicji możemy obliczyć kolejne elementy ciągu.

Przykład 1

Obliczmy wyraz ciągu Fibonacciego o indeksie 5.

FIndeks dolny 5 = FIndeks dolny 4 + FIndeks dolny 3

FIndeks dolny 4 = FIndeks dolny 3 + FIndeks dolny 2

FIndeks dolny 3 = FIndeks dolny 2 + FIndeks dolny 1

FIndeks dolny 2  Indeks dolny koniec = FIndeks dolny 1 + FIndeks dolny 0 = 1 + 0 = 1

FIndeks dolny 3  Indeks dolny koniec= FIndeks dolny 2 + FIndeks dolny 1 = 1 + 1 = 2

FIndeks dolny 4 = FIndeks dolny 3 + FIndeks dolny 2 = 2 + 1 = 3

FIndeks dolny 5 = FIndeks dolny 4 + FIndeks dolny 3 = 3 + 2 = 5

Korzystając z definicji rekurencyjnej możemy zapisać funkcję w psełdokodzie.

Przykład 2

Oto zapisana w postaci pseudokodu funkcja iteracyjna, która oblicza wyraz ciągu >Fibonacciego o indeksie n:

Linia 1. funkcja rek podkreślnik fib otwórz nawias okrągły n zamknij nawias okrągły. Linia 2. jeżeli n znak równości znak równości 0 wykonaj dwukropek. Linia 3. zwróć 0. Linia 4. w przeciwnym razie dwukropek. Linia 5. jeżeli n znak równości znak równości 1 wykonaj dwukropek. Linia 6. zwróć 1. Linia 7. w przeciwnym razie dwukropek. Linia 8. zwróć rek podkreślnik fib otwórz nawias okrągły n minus 2 zamknij nawias okrągły plus rek podkreślnik fib otwórz nawias okrągły n minus 1 zamknij nawias okrągły.

Umiemy już zapisać wersję rekurencyną obliczania n‑tego wyrazu ciągu Fibonacciego. Korzystając z definicji rekurencyjnej obliczymy n‑ty element ciągu w wersji iteracyjnej.

Przykład 3

Oto zapisana w postaci pseudokodu funkcja iteracyjna, która oblicza wyraz ciągu Fibonacciego o indeksie n:

Linia 1. funkcja iter podkreślnik fib otwórz nawias okrągły n zamknij nawias okrągły. Linia 2. jeżeli n znak równości znak równości 0 wykonaj dwukropek. Linia 3. zwróć 0. Linia 4. w przeciwnym razie jeżeli n znak równości znak równości 1 wykonaj dwukropek. Linia 5. zwróć 1. Linia 7. a znak równości 0. Linia 8. b znak równości 1. Linia 9. i znak równości 2. Linia 11. dopóki i otwórz nawias ostrokątny znak równości n wykonuj dwukropek. Linia 12. suma znak równości a plus b. Linia 13. a znak równości b. Linia 14. b znak równości suma. Linia 15. i znak równości i plus 1. Linia 16. zwróć b.

Słownik

argument funkcji
argument funkcji

element składni w określonym języku programowania, który w wyniku wywołania podprogramu zostaje utożsamiony (skojarzony) z określonym parametrem podprogramu

funkcja typu void
funkcja typu void

funkcja, która nie zwraca żadnej wartości

instrukcja warunkowa
instrukcja warunkowa

element języka programowania sterujący działaniem programu; pozwala wykonać różne instrukcje w zależności od tego, czy zdefiniowane przez programistę wyrażenie logiczne jest prawdziwe czy nieprawdziwe

nieskończona pętla
nieskończona pętla

pętla, która nigdy nie spełnia warunku zakończenia; pętla działająca w nieskończoność

parametr funkcji
parametr funkcji

element składni w określonym języku programowania; umożliwia komunikację pomiędzy podprogramem (funkcją) wywołanym a programem wywołującym; parametry określa się w nagłówku podprogramu (przy jego definicji)

rekurencja
rekurencja

sytuacja, w której funkcja wywołuje samą siebie, aż do napotkania przypadku podstawowego