Meeeeerge du tricot
ENFIN !
This commit is contained in:
commit
5efe54f824
|
@ -85,6 +85,35 @@ def dicho(l, a, b, x): # Geoffrey
|
|||
est_dedans = x == l[d]
|
||||
return (est_dedans, d if x == l[d] else -1)
|
||||
|
||||
def tricho(l, a, b, x):
|
||||
"""
|
||||
list, int, int, a → (bool, int)
|
||||
Renvoie un tuple contenant un booléen indiquant si l'élément x est dans la liste l entre les
|
||||
bornes [a, b[, ainsi que sa position le cas échéant, -1 sinon, par trichotomie.
|
||||
CU : l une liste, a et b des ints tels que 0 ≤ a < b ≤ len(l)
|
||||
"""
|
||||
|
||||
assert(type(l) == list), "l doit être une liste"
|
||||
assert(type(a) == type(b) == int), "a et b doivent être des ints"
|
||||
assert(0 <= a < b <= len(l)), "Il faut que 0 ≤ a < b ≤ len(l)"
|
||||
|
||||
d = a
|
||||
f = b - 1
|
||||
while d < f:
|
||||
m1 = (d+f)//3
|
||||
m2 = m1*2
|
||||
if l[m1] >= x:
|
||||
f = m1
|
||||
elif l[m2] >= x:
|
||||
d = m1+1
|
||||
f = m2
|
||||
else:
|
||||
d = m2+1
|
||||
est_dedans = x == l[d]
|
||||
return (est_dedans, d if x == l[d] else -1)
|
||||
|
||||
print(tricho(LEXIQUE_TRIE, 0, len(LEXIQUE_TRIE), 'banane'))
|
||||
|
||||
question(2) # Utiliser LEXIQUE
|
||||
|
||||
from lexique import *
|
||||
|
@ -118,6 +147,7 @@ squestion('b') # Effectuer de nombreuses recherches dans LEXIQUE
|
|||
# algorithmes utilisés
|
||||
|
||||
# Définition des éléments choisis pour la recherche
|
||||
<<<<<<< HEAD
|
||||
from random import randint, SystemRandom
|
||||
from string import ascii_lowercase, ascii_uppercase, digits
|
||||
|
||||
|
|
Reference in a new issue