Graphique un peu plus beau

This commit is contained in:
Geoffrey Frogeye 2015-03-15 12:01:28 +01:00
parent 07ad4f2f6f
commit a365b4321f
2 changed files with 22 additions and 10 deletions

View file

@ -24,7 +24,7 @@ parser = argparse.ArgumentParser(
parser.add_argument( parser.add_argument(
'--brut', action='store_true', help="afficher les données brutes") '--brut', action='store_true', help="afficher les données brutes")
parser.add_argument( parser.add_argument(
'--poly', action='store_true', help="calculer la regression pôlynominale") '--poly', action='store_true', help="calculer la regression polynôminale")
parser.add_argument( parser.add_argument(
'--graph', action='store_true', help="voir les données sous forme de graphique") '--graph', action='store_true', help="voir les données sous forme de graphique")
parser.add_argument('-m', type=int, default=100, help="Changer la valeur de m") parser.add_argument('-m', type=int, default=100, help="Changer la valeur de m")
@ -55,18 +55,24 @@ if args.poly:
# Affichage # Affichage
from matplotlib import pyplot from matplotlib import pyplot
if args.graph: if args.graph:
pyplot.plot(xData, yData, 'x') pyplot.plot(xData, yData, 'x', label="Données brutes")
if args.poly: if args.poly:
if args.poly: if args.poly:
def f(x): def f(x):
""" """
float float float float
Retourne un point de la regression polynominale de l'analyse du tri. Retourne un point de la regression polynôminale de l'analyse du tri.
CU : polynome est défini CU : polynome est défini
""" """
somme = 0 y = 0
for d in range(len(polynome)): for d in range(len(polynome)):
somme += polynome[d] * x**(len(polynome) - 1 - d) y += polynome[d] * x ** (len(polynome) - 1 - d)
return somme return y
pyplot.plot(xData, [f(x) for x in xData], '-') pyplot.plot(xData, [f(x)
for x in xData], '-', label="Régression polynôminale")
pyplot.legend(loc='upper left')
pyplot.xlabel("n")
pyplot.ylabel("comparaisons")
pyplot.title("Nombre de comparaisons faite par le tri par insertion en fonction de la longueur \
de la liste")
pyplot.show() pyplot.show()

View file

@ -28,6 +28,7 @@ affichage = __name__ == '__main__'
# fonctions et questions, mais pour la facilité de la correction nous avons préféré qu'il en soit # fonctions et questions, mais pour la facilité de la correction nous avons préféré qu'il en soit
# ainsi. # ainsi.
def partie(nom): def partie(nom):
""" """
str str
@ -60,6 +61,7 @@ def question(numero):
if affichage: if affichage:
print('\n***', 'Question', numero, '***') print('\n***', 'Question', numero, '***')
def reponse(texte): def reponse(texte):
""" """
str str
@ -260,7 +262,8 @@ if affichage:
for nb in range(1, 101): for nb in range(1, 101):
tableau.append([nb, tableau.append([nb,
tri_et_compte(tri_selection, liste_croissante(nb))[1], tri_et_compte(tri_selection, liste_croissante(nb))[1],
tri_et_compte(tri_selection, liste_alea(nb, 0, 500))[1], tri_et_compte(
tri_selection, liste_alea(nb, 0, 500))[1],
tri_et_compte(tri_selection, liste_decroissante(nb))[1]]) tri_et_compte(tri_selection, liste_decroissante(nb))[1]])
afficher_tableau(tableau) afficher_tableau(tableau)
@ -275,7 +278,8 @@ if affichage:
for nb in range(1, 101): for nb in range(1, 101):
tableau.append([nb, tableau.append([nb,
tri_et_compte(tri_insertion, liste_croissante(nb))[1], tri_et_compte(tri_insertion, liste_croissante(nb))[1],
tri_et_compte(tri_insertion, liste_alea(nb, 0, 500))[1], tri_et_compte(
tri_insertion, liste_alea(nb, 0, 500))[1],
tri_et_compte(tri_insertion, liste_decroissante(nb))[1]]) tri_et_compte(tri_insertion, liste_decroissante(nb))[1]])
afficher_tableau(tableau) afficher_tableau(tableau)
@ -339,6 +343,7 @@ est {t2}.\nLes nombres de comparaisons pour ces deux tris sont {res}.".format(t1
question(1) question(1)
def nbre_moyen_tri_insertion(m, n): def nbre_moyen_tri_insertion(m, n):
""" """
int, int float int, int float
@ -348,7 +353,8 @@ def nbre_moyen_tri_insertion(m, n):
""" """
compTotal = 0 compTotal = 0
for _ in range(m): for _ in range(m):
compTotal += tri_et_compte(tri_insertion, liste_alea(n, -5000, 5000))[1] compTotal += tri_et_compte(tri_insertion,
liste_alea(n, -5000, 5000))[1]
return compTotal / m return compTotal / m
question(2) question(2)