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