Faisons un exercice célèbre, et cela pourrait devenir une question d'entretien.
Nous allons essayer d'implémenter les nombres de Fibonacci et les nombres de Fibonacci sont comme ça.
Le premier nombre est zéro, puis le deuxième nombre est un, ils commencent toujours par zéro un, alors c'est ce qui
se passe.
Nous ajoutons zéro avec un pour égaler le nombre suivant.
Nous ajoutons un avec un pour égaler le numéro suivant, nous ajoutons un par deux pour obtenir le numéro suivant deux, trois pour ajouter
le numéro suivant cinq, huit pour ajouter le numéro suivant.
Etc., etc.
Comme vous pouvez le voir, cela augmente de façon exponentielle.
Eh bien, il pousse très haut, très vite.
Et ce genre de numérotation apparaît en fait beaucoup dans la nature, mais c'est aussi un problème intéressant
parce que ces chiffres, bien qu'au début, croissent très, très lentement.
Ils deviennent de plus en plus gros et cela devient un problème qui peut vraiment accaparer les ressources.
C'est donc ce que je voulais faire.
Nous allons créer une fonction.
FIB qui prend un numéro.
Et ici, ce nombre va être le numéro d'index de Fibonacci.
Ainsi, par exemple, si c'était le 20e nombre, il devrait avoir ceci.
Donc si je voulais, disons fib 20 ici.
Dans ce cas, je veux que vous retourniez tous ces numéros.
En utilisant des générateurs, c'est donc un par un jusqu'à ce que nous arrivions à cet endroit.
Maintenant, il y a deux façons de faire cela, vous pouvez le faire avec la liste ou nous pouvons le faire avec un générateur.
Et vous remarquerez qu'avec un générateur, c'est beaucoup plus facile à faire qu'avec une liste car finalement
avec une liste vous allez manquer de ressources.
Donc, ce que je veux que vous fassiez, c'est de sortir ici les nombres que vous voyez ici jusqu'à 20.
Et si vous le souhaitez, vous pouvez continuer à augmenter ce nombre et voir ce qui se passe.
Et en prime, vous pouvez également essayer de l'implémenter avec une liste.
Il s'affiche donc également dans une liste géante.
Mettez la vidéo en pause si vous le souhaitez ici.
Sinon, je vais continuer avec la réponse.
Premièrement, ce que nous voulons faire, c'est dire que A va être égal à zéro et B est égal à un, donc A et B
vont être le début des nombres.
Maintenant, ici, nous allons utiliser le générateur de distance.
À Lupe.
Ce nombre de fois que nous allons fournir la fonction.
Maintenant, ici, d'abord, je veux être à maintenant ou à deux maintenant appeler ce que B était, qui est un et B être
quel que soit le numéro suivant.
Rappelez-vous le rouleau avec Fibonacci?
Nous ajoutons les deux premiers nombres pour obtenir le troisième nombre.
Nous avons donc A B pour obtenir le numéro suivant, puis A, B pour obtenir le numéro suivant et ensuite un B pour obtenir le numéro suivant.
Donc, la première chose que je veux faire est de céder et de dire, hé, donnez-moi simplement ce que vous voulez, puis mettez la fonction en
pause jusqu'à la partie suivante.
Après cela, après que la boucle for passe à la partie suivante, je vais dire que je veux A deux égal B.
Et je veux que B soit égal à A plus B.
Voyons si cela a du sens, je dis, hé, retournez ou donnez un de cette liste donc ce
sera zéro au début, puis je veux que vous fassiez un égal à un maintenant parce que nous passons et puis je
veulent que B soit égal à un parce que A est devenu un, puis celui d'avant.
Donc B devient deux.
Si nous regardons par ici, c'est pourquoi nous voulons que nous ayons A et B ici, puis nous voulons nous déplacer sur un seul
comme celui-ci.
Donc B devrait toujours être un.
Donc, alors que nous pourrions vouloir faire ici, c'est en fait de ne pas modifier a.
Jusqu'à ce que nous soyons capables de faire A plus B.
Alors comment pouvons-nous faire cela?
Eh bien, nous pouvons simplement dire.
Disons une variable temporaire et cette température va conserver ce qu'était a lorsque nous arrivons ici, qui est zéro,
puis nous allons modifier A pour qu'il soit égal à un, puis B sera au lieu de A
plus, B sera temp, qui est zéro.
De plus, quel que soit le B à l'origine, je sais que cela peut prêter à confusion, vous voudrez peut-être faire une pause ici
ou peut-être imprimer et voir exactement ce qui se passe, mais j'espère que notre fonction fonctionne maintenant.
Si maintenant je fais quelque chose comme quatre X en forme et que je le donne, disons cent.
Et imprimons simplement la réponse.
Alors imprimez.
X et moi exécutons ceci.
Très bien, regardez ça, j'obtiens tous mes nombres de Fibonacci, faisons 20, comme nous l'avons vu dans l'exemple, si je
clique sur exécuter.
Je reçois quatre un huit un.
Donc j'ai 19 ans parce que rappelez-vous, notre décompte commence à zéro, donc techniquement ici, si nous le voulons, nous pouvons faire
21 ici, cliquer, courir et nous devrions obtenir six, sept, six, cinq, ce que nous obtenons ici.
Très, très cool, mais vous pouvez voir comment le nombre augmente considérablement.
Sommes-nous passés à mille maintenant, si nous devions faire cela dans une liste, cela ressemblerait à quelque chose comme ça.
Copions ici.
Maintenant, s'adapter à une liste signifierait que nous devons ajouter une liste ici.
Et au lieu de céder, le résultat sera ajouté par un point.
Et nous allons ajouter quelle que soit la valeur a, qui est la valeur initiale.
Et puis nous allons faire la même chose que nous avons fait auparavant, donc au lieu d'ILT, nous ajoutons
maintenant simplement à cette liste et à la fin nous revenons simplement.
Le résultat de la liste maintenant, si je renvoie ceci, disons, fib à et lui donne cent et je clique sur exécuter,
permet de commenter l'original avec le générateur.
Eh bien, nous devrions probablement imprimer ceci, n'est-ce pas ?
Alors imprimons.
Et cliquez sur exécuter.
Très bien, c'est une liste énorme.
Maintenant, si nous devions en faire mille ici.
Vous voyez que cela prend un peu de temps.
Et si on faisait 10000 ?
Très bien, cela prend définitivement du temps, et vous pouvez voir ici à quel point cela fonctionne.
Vous savez quoi?
Je vais l'arrêter.
Et retournez à notre générateur.
Way et faisons dix mille ici, voyons à quoi ressemble dix mille avec un générateur.
Eh bien, ça marche toujours dur, mais je ne garde rien de tout cela en mémoire.
Nous le prenons un par un et je peux agir en conséquence dans notre cas, en l'imprimant simplement un par un.
Maintenant, c'est une question d'entretien courante, c'est en fait un peu inutilement déroutant, je pense.
Mais cela démontre la puissance des générateurs.
Vous devrez peut-être regarder cette vidéo plusieurs fois, mais j'espère que vous vous sentez maintenant un peu à l'aise avec
l'utilisation des plages et la façon dont nous pouvons améliorer les performances à l'aide de générateurs.
Je te verrai dans le prochain.
Bye Bye.