Différences
Ci-dessous, les différences entre deux révisions de la page.
| Prochaine révision | Révision précédente | ||
| teaching:progappchim:suite_de_fibonacci-4 [2013/11/08 05:52] – créée villersd | teaching:progappchim:suite_de_fibonacci-4 [2017/02/24 09:09] (Version actuelle) – villersd | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| ====== Suite de Fibonacci : encore un algorithme ====== | ====== Suite de Fibonacci : encore un algorithme ====== | ||
| - | La page Wikipedia sur la suite de Fibonacci | + | Voici le programme complété pour la technique récursive : |
| + | <code python fibonacci07_fonction_recursive.py3> | ||
| + | #! / | ||
| + | # -*- coding: utf-8 -*- | ||
| + | """ | ||
| + | Calculs des premiers éléments de la suite de Fibonacci. | ||
| + | Référence : http:// | ||
| + | Application de la définition par récursivité. | ||
| + | """ | ||
| + | def fibonacci_item_recursive(n): | ||
| + | """ | ||
| + | Renvoie l' | ||
| + | """ | ||
| + | if n == 0: | ||
| + | return 0 | ||
| + | elif n == 1: | ||
| + | return 1 | ||
| + | return fibonacci_item_recursive(n-1)+fibonacci_item_recursive(n-2) | ||
| + | |||
| + | if __name__ == ' | ||
| + | i = input(" | ||
| + | print(" | ||
| + | printfibonacci_item_recursive(i) | ||
| + | print(' | ||
| + | for j in range(10): | ||
| + | print(j, | ||
| + | </ | ||
| + | |||
| + | |||
| + | La page Wikipedia sur la suite de Fibonacci introduit aussi un [[wp>fr:Suite_de_Fibonacci# | ||
| - | <sxh python; title : fibonacci08_fonction_algo_log.py> | + | <code python fibonacci08_fonction_algo_log.py3> |
| #! / | #! / | ||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||
| Ligne 14: | Ligne 43: | ||
| def fibo2(n): | def fibo2(n): | ||
| """ | """ | ||
| - | if (n == 0): # cas de base | + | if n == 0: # cas de base |
| return 1, 0 # F_{-1}, F_0 | return 1, 0 # F_{-1}, F_0 | ||
| else: # récurrence | else: # récurrence | ||
| Ligne 29: | Ligne 58: | ||
| if __name__ == ' | if __name__ == ' | ||
| - | i=input(" | + | i = input(" |
| - | print (" | + | print(" |
| - | | + | |
| - | print (' | + | print(' |
| for j in range(10): | for j in range(10): | ||
| - | print j, | + | print(j, |
| - | </sxh> | + | </ |
| + | |||
| + | Sur la même page wikipedia, on trouve une [[wp> | ||
| + | |||
| + | Le langage Python permet également de mettre en œuvre des générateurs (generator) : //cf.// [[http:// | ||
| + | |||
| + | <code python fibonacci09_generator.py3> | ||
| + | #! / | ||
| + | # -*- coding: utf-8 -*- | ||
| + | """ | ||
| + | Calculs des premiers éléments de la suite de Fibonacci. | ||
| + | Référence : http:// | ||
| + | """ | ||
| + | def fibonacci_gen(n): | ||
| + | """ | ||
| + | Renvoie l' | ||
| + | """ | ||
| + | a, b = 0, 1 | ||
| + | for _ in range(n): | ||
| + | yield a | ||
| + | a, b = b, a + b | ||
| + | |||
| + | if __name__ == ' | ||
| + | i = int(input(" | ||
| + | print(" | ||
| + | print(fibonacci_gen(i)) | ||
| + | print(' | ||
| + | for j in fibonacci_gen(i): | ||
| + | print(j) | ||
| + | </code> | ||
| - | Nous disposons à présent de 4 méthodes/ | + | Nous disposons à présent de plusieurs |
| Pour rechercher quel est le meilleur algorithme, [[suite_de_fibonacci-5|cliquez ici !]] | Pour rechercher quel est le meilleur algorithme, [[suite_de_fibonacci-5|cliquez ici !]] | ||