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 [2013/11/08 08:28] – 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 [[http://fr.wikipedia.org/ | + | 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 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> |
- | Nous disposons à présent de 4 méthodes/ | + | 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) | ||
+ | </ | ||
+ | |||
+ | 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 !]] |