Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| teaching:progappchim:suite_de_fibonacci-4 [2016/10/18 14:47] – villersd | teaching:progappchim:suite_de_fibonacci-4 [2017/02/24 09:09] (Version actuelle) – villersd | ||
|---|---|---|---|
| Ligne 2: | Ligne 2: | ||
| Voici le programme complété pour la technique récursive : | Voici le programme complété pour la technique récursive : | ||
| - | <sxh python; title : fibonacci07_fonction_recursive.py> | + | <code python fibonacci07_fonction_recursive.py3> |
| #! / | #! / | ||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||
| Ligne 14: | Ligne 14: | ||
| Renvoie l' | Renvoie l' | ||
| """ | """ | ||
| - | if n==0: | + | if n == 0: |
| return 0 | return 0 | ||
| - | elif n==1: | + | elif n == 1: |
| return 1 | return 1 | ||
| return fibonacci_item_recursive(n-1)+fibonacci_item_recursive(n-2) | return fibonacci_item_recursive(n-1)+fibonacci_item_recursive(n-2) | ||
| 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> | + | </code> |
| La page Wikipedia sur la suite de Fibonacci introduit aussi un [[wp> | La page Wikipedia sur la suite de Fibonacci introduit aussi un [[wp> | ||
| - | <sxh python; title : fibonacci08_fonction_algo_log.py> | + | <code python fibonacci08_fonction_algo_log.py3> |
| #! / | #! / | ||
| # -*- coding: utf-8 -*- | # -*- coding: utf-8 -*- | ||
| Ligne 43: | 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 58: | 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> | + | </code> |
| Sur la même page wikipedia, on trouve une [[wp> | Sur la même page wikipedia, on trouve une [[wp> | ||
| - | Nous disposons à présent de 5 méthodes/ | + | 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) | ||
| + | </ | ||
| + | |||
| + | 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 !]] | ||