Les algorithmes de Las Vegas
La r´eponse retourn´ee par ces algorithmes est toujours exacte.
Un algorithme de LV peut retourner un message disant qu’il n’a pas
pu trouver de r´eponse.
Dans ce dernier cas, on ex´ecute l’algorithme autant de fois que
n´ecessaire.
Un appel typique `a un algorithme de LV a la forme:
eponse=LV(x,succ`es)
o`u succ`es est une variable bool´eene
April 7, 2016 1 / 15
On ne peut pas toujours pevoir le temps d’ex´ecution d’un algorithme de
Las Vegas:
epeterLV(x)
epeter
eponse=LV(x,succ`es)
jusqu’`a ce qu’`a (succ`es==VRAI)
retourner r´eponse
Mais on est toujours certain que la r´eponse est bonne.
April 7, 2016 2 / 15
Factorisation
´
Etant donn´e un nombre entier compos´e n, on veut trouver un facteur non
trivial.
fonction facteur(n)
pour i= 2 `a bncfaire
si (nmod i)=0 alors
retourner i
retourner 1
Temps: n= 10m/2o`u m= log n
Fait: On ne connait aucun algorithme capable de factoriser un nombre en
temps polynomial en m.
April 7, 2016 3 / 15
Algorithme de Dixon
1) Trouver 1 a,b<ntels que
a2=b2(mod n) mais a6=±b(mod n).
Exemple: n= 2537,a= 2012,b= 1127.
a2= 1595n+ 1629
b2= 500n+ 1629
2) On a a2b2= (ab)(a+b) = 0 (mod n)
Exemple: 2012211272= (2012 1127)(2012 + 1127)
= (885)(3139) = 2778015 = 1095 ×2537
April 7, 2016 4 / 15
3) a6=b(mod n) =(ab)6= 0 (mod n) et
a6=b(mod n) =(a+b)6= 0 (mod n)
Exemple: (2012 1127) = 0 ×2537 + 885
(2012 + 1127) = 3139 = 1 ×2537 + 602
4) On a donc n=xy tel que
x|a+bet y|ab
Exemple: 2537 = 43 ×59
602 = 14 43
885 = 15 59
April 7, 2016 5 / 15
1 / 15 100%