TP2 Maniaquerie section Comparaison
This commit is contained in:
parent
7b516365fc
commit
026d32fe43
|
@ -1,4 +1,4 @@
|
|||
# PREUD'HOMME Geoffrey
|
||||
# PREUD'HOMME Geoffrey
|
||||
# BEAUSSART Jean-loup
|
||||
# Donné le 27/01/2015
|
||||
|
||||
|
@ -8,11 +8,11 @@
|
|||
|
||||
|
||||
def partie(nom):
|
||||
print('\n', nom, '='*len(nom), sep='\n')
|
||||
print('\n', nom, '=' * len(nom), sep='\n')
|
||||
|
||||
|
||||
def section(nom):
|
||||
print('\n', nom, '-'*len(nom), sep='\n')
|
||||
print('\n', nom, '-' * len(nom), sep='\n')
|
||||
|
||||
|
||||
def question(numero):
|
||||
|
@ -42,7 +42,8 @@ print(s.split('split'))
|
|||
|
||||
question(2)
|
||||
|
||||
print('La méthode `split` renvoie la liste des chaînes de la découpe de la chaîne sur laquelle est appliquée la fonction par la chaîne passée en argument (ou à défaut le caractères d\'espacement')
|
||||
print(
|
||||
'La méthode `split` renvoie la liste des chaînes de la découpe de la chaîne sur laquelle est appliquée la fonction par la chaîne passée en argument (ou à défaut le caractères d\'espacement')
|
||||
|
||||
question(3)
|
||||
|
||||
|
@ -192,7 +193,8 @@ def sont_anagrammes1(chaine1, chaine2):
|
|||
CU : chaine1 et chaine2 sont des str
|
||||
"""
|
||||
|
||||
assert(type(chaine1) == type(chaine2) == str), 'chaine1 et chaine2 doivent être des str'
|
||||
assert(type(chaine1) == type(chaine2) ==
|
||||
str), 'chaine1 et chaine2 doivent être des str'
|
||||
|
||||
# Si la longueur est différente, ça ne peut pas être des anagrammes
|
||||
if len(chaine1) != len(chaine2):
|
||||
|
@ -213,7 +215,8 @@ def sont_anagrammes2(chaine1, chaine2):
|
|||
CU : chaine1 et chaine2 sont des str
|
||||
"""
|
||||
|
||||
assert(type(chaine1) == type(chaine2) == str), 'chaine1 et chaine2 doivent être des str'
|
||||
assert(type(chaine1) == type(chaine2) ==
|
||||
str), 'chaine1 et chaine2 doivent être des str'
|
||||
|
||||
# Si la longueur est différente, ça ne peut pas être des anagrammes
|
||||
if len(chaine1) != len(chaine2):
|
||||
|
@ -234,7 +237,8 @@ def sont_anagrammes3(chaine1, chaine2):
|
|||
CU : chaine1 et chaine2 sont des str
|
||||
"""
|
||||
|
||||
assert(type(chaine1) == type(chaine2) == str), 'chaine1 et chaine2 doivent être des str'
|
||||
assert(type(chaine1) == type(chaine2) ==
|
||||
str), 'chaine1 et chaine2 doivent être des str'
|
||||
|
||||
# Si la longueur est différente, ça ne peut pas être des anagrammes
|
||||
if len(chaine1) != len(chaine2):
|
||||
|
@ -288,7 +292,8 @@ def sont_anagrammes_sans_casse_ni_accent(chaine1, chaine2):
|
|||
CU : chaine1 et chaine2 sont des str
|
||||
"""
|
||||
|
||||
assert(type(chaine1) == type(chaine2) == str), 'chaine1 et chaine2 doivent être des str'
|
||||
assert(type(chaine1) == type(chaine2) ==
|
||||
str), 'chaine1 et chaine2 doivent être des str'
|
||||
|
||||
# Si la longueur est différente, ça ne peut pas être des anagrammes
|
||||
if len(chaine1) != len(chaine2):
|
||||
|
@ -297,7 +302,8 @@ def sont_anagrammes_sans_casse_ni_accent(chaine1, chaine2):
|
|||
chaine1Cpy = bas_casse_sans_accent(chaine1)
|
||||
chaine2Cpy = bas_casse_sans_accent(chaine2)
|
||||
|
||||
return sont_anagrammes2(chaine1Cpy, chaine2Cpy) # TODO Voir quelle est la meilleure méthode
|
||||
# TODO Voir quelle est la meilleure méthode
|
||||
return sont_anagrammes2(chaine1Cpy, chaine2Cpy)
|
||||
|
||||
|
||||
partie('Recherche d\'anagrammes') # Jean-loup
|
||||
|
@ -412,29 +418,32 @@ section('Comparaison des deux méthodes')
|
|||
|
||||
question(1)
|
||||
|
||||
NB_TESTS = 30 # Mettre à 0 pour réduire l'attente
|
||||
|
||||
import time
|
||||
|
||||
debut = time.time()
|
||||
|
||||
for i in range(30):
|
||||
for i in range(NB_TESTS):
|
||||
anagrammes(LEXIQUE[i])
|
||||
|
||||
temps1 = time.time() - debut
|
||||
|
||||
debut = time.time()
|
||||
|
||||
for i in range(30):
|
||||
for i in range(NB_TESTS):
|
||||
anagrammes2(LEXIQUE[i])
|
||||
|
||||
temps2 = time.time() - debut
|
||||
|
||||
print('La première méthode à mis %s secondes, et la deuxième %s secondes' %
|
||||
(temps1, temps2))
|
||||
|
||||
print('La première méthode a duré %s secondes, et la deuxième %s secondes.' % (temps1, temps2),
|
||||
'La deuxième méthode est %0.2f fois plus efficace que la première.' % (temps1 / temps2),
|
||||
'En effet, la première vérifie %d combinaisons d\'anagrammes, alors que la deuxième ne \
|
||||
réalise qu\'un accès à un dictionnaire. Notons que la construction dudit dictionnaire a lui aussi \
|
||||
pris un certain temps, mais reste négligeable par rapport à la première méthode.' % len(LEXIQUE),
|
||||
sep='\n')
|
||||
|
||||
partie('Phrases d\'anagrammes') # Geoffrey
|
||||
|
||||
question(1)
|
||||
|
||||
|
||||
def arbre_vers_liste(arbre, precede):
|
||||
# dict → list
|
||||
# TODO Docstring
|
||||
|
|
Reference in a new issue