Skip to content
Extraits de code Groupes Projets
Valider 68da693c rédigé par Corentin Lingier's avatar Corentin Lingier
Parcourir les fichiers

Readme

parent 67cc77ae
Branches master
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Pipeline #10797 réussi
......@@ -140,7 +140,7 @@ Nous pouvons prouver que la fonction `f` est cyclique. Cela constitue un problè
Dans notre cas, à chaque itération `x_i = f(x_i)` et `y_i = f(f(y_i))`. Puisque `y_i` "court" deux fois plus vite que `x_i` si `x_i = y_i` on peut considérer qu'un cycle a été détecté. Ce n'est pas une preuve absolue puisqu'il pourrait y avoir deux fois le même nombre dans la séquence. Seulement nous utilisons pollard rho pour factoriser les nombres supérieur a `2^32`dès lors `x_i` et `y_i` appartiennent à `[1, 2^32]` considérer que `x_i = y_i` est une preuve qu'un cycle a été détecté ne semble donc pas une approximation abhérente.
Si un cycle est détecté il suffit de relancer l'algorithme, rappelez-vous dans la fonction `f(x) = x^2 + a mod N` : `a` est un nombre aléatoire. Dès lors en relançant la fonction les valeurs `x_i` et `y_i` seront différentes. La détection de cycle est extrêmement rare, malgré tous les tests exécutés nous n'avons jamais dû faire face à ce problème. Excepté lors des tests visants à provoquer une détection de cycle en passant un nombre inférieur à `2^32`.
Si un cycle est détecté il suffit de relancer l'algorithme, rappelez-vous dans la fonction `f(x) = x^2 + a mod N` : `a` est un nombre aléatoire. Dès lors en relançant la fonction les valeurs `x_i` et `y_i` seront différentes.
### Structure du code
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter