Affichage des réponses on/off
This commit is contained in:
parent
b11cc3df57
commit
18fabdfeb6
|
@ -20,6 +20,7 @@ __date_creation__ = 'Tue, 10 Mar 2015 10:26:41 +0100'
|
|||
|
||||
from random import randint
|
||||
|
||||
affichage = __name__ == '__main__'
|
||||
|
||||
def partie(nom):
|
||||
"""
|
||||
|
@ -28,6 +29,7 @@ def partie(nom):
|
|||
"""
|
||||
assert type(nom) == str
|
||||
|
||||
if affichage:
|
||||
print('\n', nom, '=' * len(nom), sep='\n')
|
||||
|
||||
|
||||
|
@ -38,6 +40,7 @@ def section(nom):
|
|||
"""
|
||||
assert type(nom) == str
|
||||
|
||||
if affichage:
|
||||
print('\n', nom, '-' * len(nom), sep='\n')
|
||||
|
||||
|
||||
|
@ -48,8 +51,20 @@ def question(numero):
|
|||
"""
|
||||
assert type(numero) == int
|
||||
|
||||
if affichage:
|
||||
print('\n***', 'Question', numero, '***')
|
||||
|
||||
def reponse(texte):
|
||||
"""
|
||||
str → ∅
|
||||
Affiche la réponse à la question.
|
||||
"""
|
||||
assert type(texte) == str
|
||||
|
||||
if affichage:
|
||||
print(texte)
|
||||
|
||||
|
||||
partie("Prérequis")
|
||||
|
||||
|
||||
|
@ -187,7 +202,7 @@ compteur = 0
|
|||
|
||||
tri_selection(liste_alea(100, -5000, 5000))
|
||||
|
||||
print('{} comparaisons ont été faite pour cette liste.'.format(compteur))
|
||||
reponse('{} comparaisons ont été faite pour cette liste.'.format(compteur))
|
||||
|
||||
question(2)
|
||||
|
||||
|
@ -234,13 +249,14 @@ def afficher_tableau(donnees):
|
|||
|
||||
question(1)
|
||||
|
||||
tableau = [['nb ', 'croissante ', 'aléatoire ', 'decroissante']]
|
||||
for nb in range(1, 101):
|
||||
if affichage:
|
||||
tableau = [['nb ', 'croissante ', 'aléatoire ', 'decroissante']]
|
||||
for nb in range(1, 101):
|
||||
tableau.append([nb,
|
||||
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_decroissante(nb))[1]])
|
||||
afficher_tableau(tableau)
|
||||
afficher_tableau(tableau)
|
||||
|
||||
question(2)
|
||||
|
||||
|
@ -248,68 +264,72 @@ partie("Analyse du tri par insertion")
|
|||
|
||||
question(1)
|
||||
|
||||
tableau = [tableau[0]]
|
||||
for nb in range(1, 101):
|
||||
if affichage:
|
||||
tableau = [tableau[0]]
|
||||
for nb in range(1, 101):
|
||||
tableau.append([nb,
|
||||
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_decroissante(nb))[1]])
|
||||
afficher_tableau(tableau)
|
||||
afficher_tableau(tableau)
|
||||
|
||||
section("Dans le meilleur des cas")
|
||||
|
||||
question(1)
|
||||
|
||||
print("Le meilleur des cas est lorsque la liste est déjà triée.")
|
||||
reponse("Le meilleur des cas est lorsque la liste est déjà triée.")
|
||||
|
||||
question(2)
|
||||
|
||||
print("Résultat théorique établi : c_{tri-insert}(n)=n-1")
|
||||
tableau = [['i', 'coût comtpé', 'coût théor.', 'fidèle']]
|
||||
tousFideles = True
|
||||
for nb in range(1, 101):
|
||||
if affichage:
|
||||
reponse("Résultat théorique établi : c_{tri-insert}(n)=n-1")
|
||||
tableau = [['i', 'coût comtpé', 'coût théor.', 'fidèle']]
|
||||
tousFideles = True
|
||||
for nb in range(1, 101):
|
||||
c_compte = tri_et_compte(tri_insertion, liste_croissante(nb))[1]
|
||||
c_theor = nb - 1
|
||||
fidele = c_compte == c_theor
|
||||
if not fidele:
|
||||
tousFideles = False
|
||||
tableau.append([nb, c_compte, c_theor, fidele])
|
||||
afficher_tableau(tableau)
|
||||
print("Les résultats comptés {} tous fidèles aux résultats théoriques."
|
||||
afficher_tableau(tableau)
|
||||
reponse("Les résultats comptés {} tous fidèles aux résultats théoriques."
|
||||
.format("sont" if tousFideles else "ne sont pas"))
|
||||
|
||||
section("Dans le pire des cas")
|
||||
|
||||
question(1)
|
||||
|
||||
print("Le pire des cas est lorsque la liste est triée dans l'ordre inverse.")
|
||||
reponse("Le pire des cas est lorsque la liste est triée dans l'ordre inverse.")
|
||||
|
||||
question(2)
|
||||
|
||||
print("Résultat théorique établi : c_{tri-insert}(n)=n(n-1)/2")
|
||||
tableau = [tableau[0]]
|
||||
tousFideles = True
|
||||
for nb in range(1, 101):
|
||||
if affichage:
|
||||
reponse("Résultat théorique établi : c_{tri-insert}(n)=n(n-1)/2")
|
||||
tableau = [tableau[0]]
|
||||
tousFideles = True
|
||||
for nb in range(1, 101):
|
||||
c_compte = tri_et_compte(tri_insertion, liste_decroissante(nb))[1]
|
||||
c_theor = nb * (nb - 1) // 2
|
||||
fidele = c_compte == c_theor
|
||||
if not fidele:
|
||||
tousFideles = False
|
||||
tableau.append([nb, c_compte, c_theor, fidele])
|
||||
afficher_tableau(tableau)
|
||||
print("Les résultats comptés {} tous fidèles aux résultats théoriques."
|
||||
afficher_tableau(tableau)
|
||||
reponse("Les résultats comptés {} tous fidèles aux résultats théoriques."
|
||||
.format("sont" if tousFideles else "ne sont pas"))
|
||||
|
||||
section("En moyenne")
|
||||
|
||||
question(1)
|
||||
|
||||
t1 = tri_et_compte(tri_insertion, liste_alea(100, -5000, 5000))[1]
|
||||
t2 = tri_et_compte(tri_insertion, liste_alea(100, -5000, 5000))[1]
|
||||
if affichage:
|
||||
t1 = tri_et_compte(tri_insertion, liste_alea(100, -5000, 5000))[1]
|
||||
t2 = tri_et_compte(tri_insertion, liste_alea(100, -5000, 5000))[1]
|
||||
|
||||
print("Le nombre de comparaisons de la première liste est {t1}, celui de la deuxième liste est {t2}\
|
||||
.\nLes nombres de comparaisons pour ces deux tris sont {res}.".format(t1=t1, t2=t2, \
|
||||
res=("identiques (mais c'est un coup de chance)" if t1 == t2 else "différents")))
|
||||
reponse("Le nombre de comparaisons de la première liste est {t1}, celui de la deuxième liste \
|
||||
est {t2}.\nLes nombres de comparaisons pour ces deux tris sont {res}.".format(t1=t1, t2=t2, \
|
||||
res=("identiques (mais c'est un coup de chance)" if t1 == t2 else "différents")))
|
||||
|
||||
question(1)
|
||||
|
||||
|
|
Reference in a new issue