Рациональное решетоРациональное решето — это алгоритм общего вида для разложения целых чисел на простые множители. Алгоритм является частным случаем общего метода решета числового поля. Хотя он менее эффективен, чем общий алгоритм, концептуально он проще. Алгоритм может помочь понять, как работает общий метод решета числового поля. МетодПредположим, что мы пытаемся разложить на множители составное число n. Мы определяем границу B и базу множителей (которую будем обозначать через P), множество всех простых чисел, меньших либо равных B. Затем мы ищем положительное целое z, такое, что как z, так и z+n являются B-гладкими, то есть все их простые делители содержатся в P. Мы можем поэтому записать для подходящих степеней , а также для подходящих мы имеем . Но и сравнимы по модулю , так что любое такое целое число z, которое мы находим, даёт связь по модулю по умножению (mod n) среди всех элементов P, то есть (где ai и bi — неотрицательные целые числа.) Когда мы сгенерируем достаточно таких соотношений (как правило, достаточно, чтобы число таких отношений было чуть больше размера P), мы можем использовать методы линейной алгебры для умножения этих различных отношений таким образом, чтобы степени всех простых множителей оказались чётными. Это даст нам сравнимость квадратов по модулю[англ.] вида a2≡b2 (mod n), что можно преобразовать в разложение числа n, n = НОД(a-b,n)×НОД(a+b,n). Такое разложение может оказаться тривиальным (то есть n=n×1) и в этом случае нужно попытаться попробовать снова с другой комбинацией отношений. Если посчастливится, мы получим нетривиальную пару делителей числа n, и алгоритм завершится. ПримерРазложим на множители число n = 187 с помощью рационального решета. Попробуем число B=7, для которого базой множителей служит множество P = {2,3,5,7}. Первый шаг — проверка на делимость числа n на числа из множества P. Ясно, что в случае, когда n делится на одно из таких простых, мы нашли решение. Однако 187 не делится на 2, 3, 5 или 7. На следующем шаге мы ищем подходящие значения z, в качестве таких чисел подходят 2, 5, 9 и 56. Четыре значения z дают соотношения по модулю 187:
Теперь мы комбинируем разными путями эти соотношения и завершаем чётными степенями. Например,
Альтернативно, уравнение (3) уже имеет нужный вид:
Ограничения алгоритмаРациональное решето, как и общее решето числового поля, не может получить разложение чисел вида pm, где p — простое число, а m — целое. Проблема не является слишком большой — статистически такие числа редки и, кроме того, существует простой и быстрый процесс проверки, что заданное число имеет такой вид. Видимо, наиболее элегантным методом является проверка, не выполняется ли для 1 < b < log(n), с помощью целочисленной версии метода Ньютона для вычисления корня[2] Наибольшей проблемой является нахождение чисел z, таких, что как z, так и z+n являются B-гладкими. Для любого заданного B пропорция B-гладких чисел уменьшается быстро с размером числа. Так что, если n велико (скажем, сотня цифр), будет трудно или почти невозможно найти достаточное количество чисел z, чтобы заставить алгоритм заработать. Преимущество общего алгоритма решета числового поля заключается в том, что нужно найти гладкие числа порядка n1/d для некоторого положительного целого d (обычно 3 или 5), вместо порядка n, как требуется в данном алгоритме. Примечания
Литература
|
Portal di Ensiklopedia Dunia