Ciąg Fibonacciego

Ciąg Fibonacciego to sekwencja liczb, w której każda kolejna liczba jest sumą dwóch poprzednich. Ciąg zaczyna się od 0 i 1, a każda następna liczba jest sumą dwóch poprzednich.

Definicja ciągu Fibonacciego

Matematycznie ciąg Fibonacciego można zdefiniować rekurencyjnie jako:

F(n) = F(n−1) + F(n−2)

gdzie F(0)=0 i F(1)=1.

Pierwsze liczby w ciągu Fibonacciego:

0,1,1,2,3,5,8,13,21,34,55,89,...

Implementacja Ciągu Fibonacciego w językach programowania

Implementacja ciągu Fibonacciego w języku Python - iteracyjnie

def fibonacci(n):
    a, b = 0, 1
    for _ in range(n):
        a, b = b, a + b
    return a
for i in range(10):
    print(fibonacci(i))

Wyniki

Uruchomienie powyższego kodu spowoduje wydrukowanie pierwszych 10 liczb w ciągu Fibonacciego:

0
1
1
2
3
5
8
13
21
34

Taki sposób implementacji jest efektywny i prosty, wykorzystując jedynie podstawowe operacje arytmetyczne i zmienne do przechowywania wyników.

Implementacja ciągu Fibonacciego w języku Python - rekurencyjnie

def fibonacci(n):
    if n <= 1:
        return n
    else:
        return fibonacci(n-1) + fibonacci(n-2)
for i in range(10):
    print(fibonacci(i))

Implementacja ciągu Fibonacciego w języku C++ - iteracyjnie

#include <stdio.h>
int fibonacci(int n) {
    int a = 0, b = 1, c;
    if (n == 0) return a;
    for (int i = 2; i <= n; i++) {
        c = a + b;
        a = b;
        b = c;
    }
    return b;
}
int main() {
    for (int i = 0; i < 10; i++) {
        printf("%d\n", fibonacci(i));
    }
    return 0;
}

Implementacja ciągu Fibonacciego w języku C++ - rekurencyjnie

#include <stdio.h>
int fibonacci(int n) {
    if (n <= 1) return n;
    return fibonacci(n-1) + fibonacci(n-2);
}
int main() {
    for (int i = 0; i < 10; i++) {
        printf("%d\n", fibonacci(i));
    }
    return 0;
}

Implementacja ciągu Fibonacciego Java - iteracyjnie

public class Fibonacci {
    public static int fibonacci(int n) {
        if (n <= 1) return n;
        int a = 0, b = 1;
        for (int i = 2; i <= n; i++) {
            int c = a + b;
            a = b;
            b = c;
        }
        return b;
    }
    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            System.out.println(fibonacci(i));
        }
    }
}

Implementacja ciągu Fibonacciego Java - rekurencyjnie

public class Fibonacci {
    public static int fibonacci(int n) {
        if (n <= 1) return n;
        return fibonacci(n-1) + fibonacci(n-2);
    }
    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            System.out.println(fibonacci(i));
        }
    }
}

Implementacja ciągu Fibonacciego JavaScript - iteracyjnie

function fibonacci(n) {
    let a = 0, b = 1;
    for (let i = 0; i < n; i++) {
        [a, b] = [b, a + b];
    }
    return a;
}
for (let i = 0; i < 10; i++) {
    console.log(fibonacci(i));
}

Implementacja ciągu Fibonacciego JavaScript - rekurencyjnie

function fibonacci(n) {
    if (n <= 1) return n;
    return fibonacci(n - 1) + fibonacci(n - 2);
}
for (let i = 0; i < 10; i++) {
    console.log(fibonacci(i));
}

Każdy z powyższych przykładów pokazuje, jak zaimplementować ciąg Fibonacciego w różnych językach programowania zarówno w sposób iteracyjny, jak i rekurencyjny.

Komentarze