ВУЗ:
Составители:
Глава 2. Простые алгоритмы факторизации 63
int ρ-Pollard (int n)
{ int x = random (1, n-2);
int y = 1; int i = 0; int stage = 2;
while(Н.О.Д.(n, abs(x − y)) = 1)
{
if (i = = stage ){
y = x;
stage = stage*2; }
x=x ∗x + 1(modn);
i=i + 1;
}
return Н.О.Д.(n, abs(x − y)); }
В этом варианте вычисление требует хранить в памяти всего три
переменные n, x и y , что выгодно отличает этот метод от других методов
факторизации.
Еще одна вариация ρ-метода Полларда была разработана Флойдом
(Floyd). Согласно Флойду, значение y обновляется на каждом шаге по
формуле y = F
2
(y) = F (F (y)), поэтому на шаге i будут получены значения
x
i
= F
i
(x
0
), y
i
= x
2i
= F
2i
(x
0
), и Н.О.Д. на этом шаге вычисляется между
n и y − x.
Обоснование ρ-метода Полларда
Приведем обоснование этого метода и оценим его трудоемкость.
Оценка основывается на известном «парадоксе дня рождения».
Теорема 2.1. (Парадокс дня рождения) Пусть λ > 0. Для случайной
выборки из l + 1 элементов, каждый из которых меньше q , где l =
√
2λq ,
вероятность того, что два элемента окажутся равными
p > 1 −e
−λ
.
Отметим, что вероятность p = 0, 5 в парадоксе дня рождения достигается
при λ ≈ 0, 69.
Глава 2. Простые алгоритмы факторизации 63
int ρ-Pollard (int n)
{ int x = random (1, n-2);
int y = 1; int i = 0; int stage = 2;
while(Н.О.Д.(n, abs(x − y)) = 1)
{
if (i = = stage ){
y = x;
stage = stage*2; }
x=x ∗ x + 1(modn);
i=i + 1;
}
return Н.О.Д.(n, abs(x − y)); }
В этом варианте вычисление требует хранить в памяти всего три
переменные n, x и y , что выгодно отличает этот метод от других методов
факторизации.
Еще одна вариация ρ-метода Полларда была разработана Флойдом
(Floyd). Согласно Флойду, значение y обновляется на каждом шаге по
формуле y = F 2 (y) = F (F (y)), поэтому на шаге i будут получены значения
xi = F i (x0 ), yi = x2i = F 2i (x0 ), и Н.О.Д. на этом шаге вычисляется между
n и y − x.
Обоснование ρ-метода Полларда
Приведем обоснование этого метода и оценим его трудоемкость.
Оценка основывается на известном «парадоксе дня рождения».
Теорема 2.1. (Парадокс дня рождения) Пусть λ > 0. Для случайной
√
выборки из l + 1 элементов, каждый из которых меньше q , где l = 2λq ,
вероятность того, что два элемента окажутся равными
p > 1 − e−λ .
Отметим, что вероятность p = 0, 5 в парадоксе дня рождения достигается
при λ ≈ 0, 69.
Страницы
- « первая
- ‹ предыдущая
- …
- 60
- 61
- 62
- 63
- 64
- …
- следующая ›
- последняя »
