Séquence de Fibonacci en Python

Manav Narula 30 janvier 2023
  1. Utilisez la formule mathématique pour créer une séquence de Fibonacci en Python
  2. Utilisez la boucle for pour créer une séquence de Fibonacci en Python
  3. Utiliser une fonction récursive pour créer une séquence de Fibonacci en Python
  4. Utilisez la méthode de programmation dynamique pour créer une séquence de Fibonacci en Python
Séquence de Fibonacci en Python

La séquence de Fibonacci est une série courante et fréquemment utilisée en mathématiques. Il est montré ci-dessous.

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

Le nombre suivant dans la séquence de Fibonacci est la somme des deux nombres précédents et peut être représenté mathématiquement par Fn = Fn-1 + Fn-2.

Les premier et second éléments de la série sont respectivement 0 et 1.

Dans ce tutoriel, nous allons discuter de la création d’une telle séquence en Python.

Utilisez la formule mathématique pour créer une séquence de Fibonacci en Python

Chaque élément d’une séquence de Fibonacci peut être représenté à l’aide de la formule mathématique suivante.

Équation de Fibonacci

Nous pouvons implémenter cette formule en Python pour trouver la série jusqu’au nombre requis et imprimer la séquence. Le code suivant montre comment.

from math import sqrt


def F(n):
    return ((1 + sqrt(5)) ** n - (1 - sqrt(5)) ** n) / (2 ** n * sqrt(5))


def Fibonacci(startNumber, endNumber):
    n = 0
    cur = F(n)
    while cur <= endNumber:
        if startNumber <= cur:
            print(cur)
        n += 1
        cur = F(n)


Fibonacci(1, 100)

Production:

1.0
1.0
2.0
3.0000000000000004
5.000000000000001
8.000000000000002
13.000000000000002
21.000000000000004
34.00000000000001
55.000000000000014
89.00000000000003

La fonction Fibonacci() calcule le nombre de Fibonacci à une certaine position dans une séquence spécifiée par le numéro de début et de fin.

Utilisez la boucle for pour créer une séquence de Fibonacci en Python

Nous allons créer une fonction utilisant la boucle for pour implémenter la série requise. Dans cette méthode, nous imprimerons une séquence d’une longueur requise. Nous n’utiliserons que la boucle for pour itérer jusqu’à la longueur requise et modifier les variables requises à chaque itération. Le code suivant explique comment:

def fibonacci_iter(n):
    a = 1
    b = 1
    if n == 1:
        print("0")
    elif n == 2:
        print("0", "1")
    else:
        print("0")
        print(a)
        print(b)
        for i in range(n - 3):
            total = a + b
            b = a
            a = total
            print(total)


fibonacci_iter(8)

Production:

0
1
1
2
3
5
8
13

Utiliser une fonction récursive pour créer une séquence de Fibonacci en Python

Une fonction récursive est une fonction qui s’appelle elle-même, et de telles méthodes peuvent réduire la complexité temporelle mais utiliser plus de mémoire. Nous pouvons créer une telle fonction pour renvoyer le nombre de Fibonacci et imprimer la série requise en utilisant une boucle for.

Par exemple,

def rec_fib(n):
    if n > 1:
        return rec_fib(n - 1) + rec_fib(n - 2)
    return n


for i in range(10):
    print(rec_fib(i))

Production:

0
1
1
2
3
5
8
13
21
34

Utilisez la méthode de programmation dynamique pour créer une séquence de Fibonacci en Python

La programmation dynamique est une méthode dans laquelle nous divisons les problèmes en sous-problèmes et stockons les valeurs de ces sous-problèmes pour trouver des solutions. Cette méthode est généralement utilisée pour optimiser les problèmes et peut être utilisée pour générer la séquence de Fibonacci comme indiqué ci-dessous:

def fibonacci(num):
    arr = [0, 1]
    if num == 1:
        print("0")
    elif num == 2:
        print("[0,", "1]")
    else:
        while len(arr) < num:
            arr.append(0)
        if num == 0 or num == 1:
            return 1
        else:
            arr[0] = 0
            arr[1] = 1
            for i in range(2, num):
                arr[i] = arr[i - 1] + arr[i - 2]
            print(arr)


fibonacci(10)

Production:

[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]

Notez que la séquence est stockée dans un tableau dans cette méthode.

Auteur: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Article connexe - Python Math