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 !]] |