teaching:progappchim:suite_de_fibonacci-5

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
teaching:progappchim:suite_de_fibonacci-5 [2013/11/08 06:36] – créée villersdteaching:progappchim:suite_de_fibonacci-5 [2017/05/30 00:13] (Version actuelle) villersd
Ligne 1: Ligne 1:
 ====== Suite de Fibonacci : quel est le meilleur algorithme ? ====== ====== Suite de Fibonacci : quel est le meilleur algorithme ? ======
-...+===== Comparer les temps avec timeit ===== 
 +La librairie [[http://docs.python.org/2/library/timeit.html|timeit]] mesure les temps d'exécution en évitant des biais tels que l'usage concomitant d'autres ressources. 
 + 
 +<code python fibonacci10_fonctions_comparaison.py> 
 +#! /usr/bin/env python 
 +# -*- coding: utf-8 -*- 
 +""" 
 +Calculs des premiers éléments de la suite de Fibonacci. 
 +Référence : http://fr.wikipedia.org/wiki/Suite_de_Fibonacci 
 +Comparaison de différentes fonctions avec Timeit 
 +http://docs.python.org/2/library/timeit.html 
 +http://www.diveintopython.net/performance_tuning/timeit.html ; traduit en français ici : 
 +http://python.developpez.com/cours/DiveIntoPython/php/frdiveintopython/performance_tuning/timeit.php 
 +""" 
 +import timeit 
 +from fibonacci05_fonction import fibonacci_item 
 +from fibonacci06_fonctions import fibonacci_item_from_list 
 +from fibonacci07_fonction_recursive import fibonacci_item_recursive 
 +from fibonacci08_fonction_algo_log import fibonacci_item_logarithmic 
 + 
 +if __name__ == '__main__': 
 +    print("Calculs exemples préliminaires..."
 +    i=int(input("Suite de Fibonacci. Donnez l'indice de l'élément souhaité ? ")) 
 +    print ("Élément de la suite : "), 
 +    if i <= 10: print(fibonacci_item_recursive(i)) 
 +    print(fibonacci_item_from_list(i)) 
 +    print(fibonacci_item(i)) 
 +    print(fibonacci_item_logarithmic(i)) 
 +    print("Temps d'exécution"
 +    #using timeit : 
 +    t1 = timeit.Timer("fibonacci_item_recursive(" + str(i) + ")","from fibonacci07_fonction_recursive import fibonacci_item_recursive"
 +    t2 = timeit.Timer("fibonacci_item_from_list(" + str(i) + ")","from fibonacci06_fonctions import fibonacci_item_from_list"
 +    t3 = timeit.Timer("fibonacci_item(" + str(i) + ")","from fibonacci05_fonction import fibonacci_item"
 +    t4 = timeit.Timer("fibonacci_item_logarithmic(" + str(i) + ")","from fibonacci08_fonction_algo_log import fibonacci_item_logarithmic"
 +    if i <= 10: 
 +        print("fibonacci_item_recursive"
 +        print("1000 exécutions : ",t1.timeit(1000)) 
 +        print("Cinq ensembles de 10000 exécutions : ",t1.repeat(5, 1000)) 
 +    print("fibonacci_item_from_list"
 +    print("1000 exécutions : ",t2.timeit(1000)) 
 +    print("Cinq ensembles de 10000 exécutions : ",t2.repeat(5, 1000)) 
 +    print("fibonacci_item_"
 +    print("1000 exécutions : ",t3.timeit(1000)) 
 +    print("Cinq ensembles de 10000 exécutions : ",t3.repeat(5, 1000)) 
 +    print("fibonacci_item_logarithmic"
 +    print("1000 exécutions : ",t4.timeit(1000)) 
 +    print("Cinq ensembles de 10000 exécutions : ",t4.repeat(5, 1000)) 
 + 
 +</code> 
 + 
 +===== Traitements statistiques ===== 
 + 
 +==== Les listes de mesures ==== 
 + 
 +  * La [[http://fr.wikipedia.org/wiki/Statistique_descriptive|statistique descriptive]] permet de décrire un ensemble de mesure par quelques valeurs caractéristiques : 
 +    * la moyenne 
 +    * la médiane 
 +    * le maximum 
 +    * le minimum 
 +    * la variance et sa racine carrée, l'écart type 
 + 
 +Exercices : 
 +  * créer en Python des fonctions qui extraient ces valeurs pour une liste de nombres. 
 +  * rechercher des librairies spécialisées et leurs fonctionnalités fournissant facilement ces paramètres (numpy, scipy, statsmodels, pandas,...) 
 + 
 +==== L'influence d'une variable ==== 
 + 
 +Caractériser plusieurs ensembles de mesures pour lesquels on fait varier un paramètre (le numéro de l'élément dans la suite par exemple), et étudier la dépendance des variables mesurées en fonction de ce paramètre. 
 + 
 + 
 +===== Résumé ===== 
 +<WRAP tabs> 
 +  * [[suite_de_fibonacci|Suite de Fibonacci]] 
 +  * [[suite_de_fibonacci-1|Suite-1]] 
 +  * [[suite_de_fibonacci-2|Suite-2]] 
 +  * [[suite_de_fibonacci-3|Suite-3]] 
 +  * [[suite_de_fibonacci-4|Suite-4]] 
 +  * [[suite_de_fibonacci-5|Suite-5]] 
 +</WRAP>
  • teaching/progappchim/suite_de_fibonacci-5.1383888961.txt.gz
  • Dernière modification : 2013/11/08 06:36
  • de villersd