[PYTHON] Merci pour la séquence de Fibonacci.

Bonjour. J'ai essayé différentes manières d'écrire à ma manière.

J'apprécierais que vous y fassiez référence. La description suivante est familière.

fib_1.py


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

Je pense qu'il existe aussi une telle manière d'écrire.

fib_2.py


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

J'étais heureux de battre des mains car j'ai pu l'optimiser pour une simple description, Il y a beaucoup de calculs en double, donc je veux l'optimiser d'une manière ou d'une autre. Préparer une note en vous référant aux conseils d'un expert, Il semble que le calcul puisse être réduit en extrayant de ceux applicables.

fib_3.py


class fib:
    def __init__(self):
        self.table ={}
    def cal(self,n):
        if n <= 2:
            return n-1
        
        if n in self.table:
            return self.table[n]
        
        self.table[n] = self.cal(n-2)+self.cal(n-1)
        return self.table[n]

fib_sequence = fib()

Traitement récursif + mémo, je vois. Vous pouvez également le faire. J'ai joué un peu avec.

fib_4.py


def fib(n):
    if n <= 2:
        return n-1
    
    if n in memo:
        return memo[n]
    memo[n] = fib(n-2)+fib(n-1)

    return memo[n]

memo = {}

Il semble y avoir une approche appelée la méthode gourmande autre que la simplification avec un mémo, Ce sera refait cette fois.

Imagine ce que tu veux faire C'est amusant d'expérimenter différentes approches.

Coco avait également une méthode utilisant l'instruction for. Génial!!

Si vous avez des problèmes parce que vous ne pouvez pas obtenir d'image, baissez le niveau et Je pense que vous devriez faire un exercice préparatoire avec l'article ici. C'est utile, c'était aussi un excellent article.

Recommended Posts

Merci pour la séquence de Fibonacci.
Merci d'avoir enregistré 100 000 paiza.
Exemple de programme pour trouver la séquence de Fibonacci
Séquence de Fibonacci (je ne peux plus vous demander)
Un programme shell qui affiche une séquence de Fibonacci
Séquence de Fibonacci utilisant Python
[Python] Un programme pour trouver une séquence de Fibonacci (fonction récursive, méthode de gouvernance divisionnaire, méthode de planification dynamique)
Implémentation de la séquence de Fibonacci
Cela ... ne peut pas voir le processus que vous exécutez? La raison pour
Django Faites des choix uniquement pour l'établissement auquel vous appartenez
Premier Kaggle (kaggle ①)
Pour se préparer au test G 2020 # 2
Kaguru pour la première fois
A quoi sert l'interface ...
Pouvez-vous supprimer ce fichier?