Анимация
JavaScript


Главная  Библионтека 

0 1 2 3 4 5 6 7 8 9 10 11 [ 12 ] 13 14 15 16

жения

а (Ъ) = (ар1 (Ъ),...,ар (Ъ)),

а также двоичный вектор, полученный из вектора а(Ъ) приведением всех его координат по модулю 2,

£(Ъ) = (ар1 (Ъ) mod 2,..., aph (Ъ) mod 2).

Если теперь каким-либо способом подобрать такое множество различных теел Ъ.,... ,Ът, при котором выполняется линейное соотношение

ё{Ъ1) © ... © ё{Ът) = 0, то для произведения x = Ъ. .. .Ът выполняется соотношение

x2 = y2 (mod и),

y=Y[ pbirAbi)+-+<iAbr.)) peB

Алгоритм Диксона заключается в следующем.

Шаг 1. Выбрать случайное Ъ, 1 < Ъ < геислить Ъ2 mod m.

Ъ2 mod m

простые множители из факторной базы. Шаг 3. Если гается В-числом, т.е.

Ъ2 mod и =Y[ pap(b), peB

то запомнить а(Ъ) и £(b). Повторять процедуру генерации Ъ m=h+1 B

Ъ1,...,Ът-

Шаг 4. Найти (например, решая с помощью алгоритма последовательного исключения неизвестных Гаусса однородную систему линейных уравнений Xle(Ъl) ©...©xme(Ъm) = 0 относительно неизвестных (xi,..., xm)) соотношение линейной зависимости

e(Ъil) © ... © e(Ъit ) = 0, Положить

1 <t € m.

x = Ъil ...Ъit,

((Sp(b,J+... + ap(b,J)

pe B

Шаг 5. Проверить x = ±у (mod и). Если это так, то повторить процедуру генерации. Если нет, то найдено нетривиальное разложение

и = u - v, u = (x + у, и), v = (x - у, и).

На трудоемкость алгоритма Диксона существенно влияет выбор факторной базы. Если число h выбрано так, что М « то почти каждое число ет В-числом, но получаемые при этом сравнения x2 = у2 (mod и) будут тривиальными. Кроме того, надо будет решать

и x2 = a2

(mod и)

(x, у)

с x = ±у (mod етосходит 1/2. Следовательно, повторяя про-

что надежность данного метода нахождения делителя не меньше,

1 - 2-k

Обозначим через (и,М етых чисел тервале 1 < <a € и, раскладывающихся в произведение простых чисел из множества В = {p: p € М}.

Из результатов Н.Де-Брейна (1966) и Е.Кэпфилда, Р. Эрдоша и К. Померанца (1983) вытекает следующая

>

> 0, x 10, u € (log x)1- щи u ерно по x выполняется соотношение

x,x}/ = x - u-u(1+o(1)). Отсюда при и = jl получаем

(x,y)= x - u-u(1+o(1)).

Поэтому в качестве приближенного значения вероятности получения числа, раскладывающегося в произведение простых чисел из множества В = {p: p € М}, при случайном выборе чисел в интервале [2, и]

где и = Yjj. Эту же величину можно принять в качестве приближенного значения вероятности появления В-числа на шаге 1 алгоритма.



Всего надо набрать h + отчных В-чисел, причем при их про-

временную арифметическую сложность алгоритма Диксона можно оценить выражением

T = Oa(uu • h2 + h3),

где Oa (h3) - отения системы из h+1 линейных уравнений от h неизвестных. В нашем случае h = тг(М) = ij-

Выберем в качестве М величину М = Ь{пу/, где через Ь{п) обозначено ехр(\/1пп In In п). Тогда, как нетрудно проверить,

uu = L(n)1/2, M = n(M) = L(n)1/2

Отсюда следует, что трудоемкость алгоритма Диксона оценивается следующим образом:

T = Oa (L(n)2 + L(n)3/2) = 0(L(n)2 )

Алгоритм Диксона может быть усовершенствован по нескольким направлениям:

- можно заменить процедуру генерации В-чисел так, чтобы вероятность их порождения была большей;

- можно оптимизировать выбор факторной базы с тем, чтобы уменьшить число неизвестных в системе уравнений;

не являющихся В-числами;

- можно использовать быстрый алгоритм решения системы линейных уравнений (например, алгоритм Видемана для разреженных матриц), и т.д.

Подобные улучшения не позволяют изменить общий вид оценки сложности 0(L(n)c та уменьшить константу е, c > 1.

13.5. Алгоритм Врилхарта-Моррисона

Суть алгоритма Врилхарта-Моррисона, опубликованного ими в 1975 г., заключается в двух изменениях в алгоритме Диксона:

ных дробей, предложенного Лагранжем, позволяющего генерировать

6 62 mod n

его разложения более высока;

б) из факторной базы тся те числа p, для которых

= -1.

Рассмотрим его более подробно.

Теорема. Пусть ж > 1 - действительное число, « { } последовательность его подходящих дробей, k =1,2, при всех k 1 выполняется неравенство

P2 - x2Qk < 2x Доказательство. В силу свойств подходящих дробей имеем

Pk2 - x2Qk=

Отсюда

P2 - x2Qk- 2x< 2x •

Ж+ -

<

Qk Qk+1

k Qk+i /

Qk+:

<2x• -1 V

2Qk+iy Qk + 1 \

<

Qk+1;

< 2x

Qk+1

Qk+1

подходящая

2 < 2\/n. Поэтому минимальный

дробь для числа \[п. Тогда минимальный по абсолютной величине вычет Р mod п равен Р - nQ\ и не превосходит Доказательство. При ж = /п

Pi{Pi-nQl) (modn),

причем в силу теоремы Р - nQ/.

Pk2 - nQ2k

Данное следствие показывает, что если в качестве случайных чи-6 Pk

Pk2 mod n Pk2 - nQ2k

будет превышать значения Поэтому вероятность его разложе-

случайном выборе.

факторной базы все числа р, у которых () = - 1. Покажем, что в раз-Pk2 - nQ2k



только те числа таторых и является квадратичным вычетом

Пусть p (P22 - uQI как (Pk,Qk) = (p,Qk) = 1- Отсю-

Qk p

выполняться условие

{PkQ--1)2 = и (mod p),

но это и означает, что () = 1.

Такие улучшения позволяют добиться общей оценки сложности алгоритма 0{Ь{пУ) при с= \/2.

13.6. Метод квадратичного решета

пользовать подход, обобщающий метод Ферма. Рассмотрим функцию

f{x) = {x+lV\f -п,

являющуюся квадратным трехчленом с целыми коэффициентами. При каждом целом x £ Z получается нетривиальное сравнение

(x+LvJ)2/(x) (modn),

/(x) x

/(ж) < ж2 + 2жу,

и поэтому (ж + [л/й]) 7 /(ж). Поэтому, если при вместо случайных чисел отатривать значения Ъ = / (x) при случайных текотором интервале -М € x € М, то вероятность В

/( x)

жители из факторной базы для каждого p £ В, которое

может выступать в качестве сомножителя в разложении

f{x) = {x+lV\f-п=1[р"(х\

pe B

решаем квадратное уравнение

(ж+ [Vn\f -п = 0 (modp)

в кольце &ли rlp),r2 -решения этого уравнения, то должно выполняться равенство x = r1 + jp, i = 1, 2, j £ Z.

Проделав предварительно данную работу по нахождению кор-r1lp) , r2lp) p £ В

ле [-М, М е чиела ых сравнение x = r1lP) (mod p)

p£ В

x p£ В

/(x)

если она существует.

Дж.Дэвис и П.Монтгомери обобщили данный подход. Они предложили использовать многочлен

/ab(x) = ax2 + 2Ъx + c,

a, Ъ, c

условию

Ъ2 - ac = и, 0 € Ъ <a; При таком выборе коэффициентов выполняется равенство

a/ab(x) = (ax + Ъ)2 - и, откуда получаем сравнение

(ax + Ъ)2 = a/ab(x) (mod и),

причем

(ax + Ъ)2 = a/ab(x).

a, Ъ, c /ab(x)

[-М, М]

fab{-M)-{a2M2 -п).

Минимальное значение она принимает в точке x = -Ъ/ -1 < x < 0,

( Ъ \



0 1 2 3 4 5 6 7 8 9 10 11 [ 12 ] 13 14 15 16