Fibonatch rapide de Python

Voici à quoi cela ressemble (en utilisant lru_cache)

from functools import lru_cache

@lru_cache(maxsize=None)
def fib(n):
    if n <= 1:
        return 1
    return fib(n - 2) + fib(n - 1)

C'est (faites une note avec votre propre cache)

def fib(n):
    cache = {}
    def impl(ni):
        nonlocal cache
        if ni <= 1:
            return 1
        if ni not in cache:
            cache[ni] = impl(ni - 2) + impl(ni - 1)
        return cache[ni]
    return impl(n)

Un peu modifié sur la base du commentaire de @shiracamus ↓

def fib(n, cache={0:1, 1:1}):
    if n not in cache:
        cache[n] = fib(n - 2) + fib(n - 1)
    return cache[n]

⚠️ C'est lent ⚠️

def fib(n):
    if n <= 1:
        return 1
    return fib(n - 2) + fib(n - 1)

Recommended Posts

Fibonatch rapide de Python
Séquence de Fibonacci utilisant Python
Python
Implémentation de Fibonacci et des nombres premiers (python)
Mettre en œuvre un RPC rapide en Python
Accélérer le calcul de la séquence de Fibonacci (version Python)
Écrire une liste de python astuces vim rapides
Les bases de Python ⑤
Résumé Python
Python intégré
Notation d'inclusion Python
Technique Python
Étudier Python
Compte à rebours Python 2.7
Mémorandum Python
Python FlowFishMaster
Service Python
astuces python
fonction python ①
Les bases de Python
ufo-> python (3)
Notation d'inclusion Python
Installer python
Python Singleton
mémo python
Python Jinja2
atCoder 173 Python
[Python] fonction
Installation de Python
Installer Python 3.4.3.
Essayez Python
Mémo Python
Algorithme Python
Python2 + mot2vec
[Python] Variables
Fonctions Python
Python sys.intern ()
Tutoriel Python
Fraction Python
underbar python C'est ce que
Résumé Python
Démarrer python
[Python] Trier
Remarque: Python
Les bases de Python ③
Sortie du journal python
Les bases de Python
[Scraping] Scraping Python
Mise à jour Python (2.6-> 2.7)
mémo python
Python #sort
ufo-> python
Python nslookup
apprentissage de python
[Rpmbuild] Python 3.7.3.
J'ai essayé la récurrence avec Python ② (séquence de nombres Fibonatch)
Python au prorata (1)