diff --git a/README.md b/README.md index ba565c7a66b53707b14a22c0222bd4153d71aae7..2b4ecb8d7dfe55fd71aad24f5964046c2ecda25b 100644 --- a/README.md +++ b/README.md @@ -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