Решето Сундарама
- 1 year ago
- 0
- 0
Рациональное решето — это алгоритм общего вида для разложения целых чисел на простые множители . Алгоритм является частным случаем общего метода решета числового поля . Хотя он менее эффективен , чем общий алгоритм, концептуально он проще. Алгоритм может помочь понять, как работает общий метод решета числового поля.
Предположим, что мы пытаемся разложить на множители составное число n . Мы определяем границу B и базу множителей (которую будем обозначать через P ), множество всех простых чисел , меньших либо равных B . Затем мы ищем положительное целое z , такое, что как z , так и z+n являются B -гладкими , то есть все их простые делители содержатся в P . Мы можем поэтому записать для подходящих степеней
,
а также для подходящих мы имеем
.
Но и сравнимы по модулю , так что любое такое целое число z , которое мы находим, даёт связь по модулю по умножению (mod n ) среди всех элементов P , то есть
(где a i и b i — неотрицательные целые числа.)
Когда мы сгенерируем достаточно таких соотношений (как правило, достаточно, чтобы число таких отношений было чуть больше размера P ), мы можем использовать методы линейной алгебры для умножения этих различных отношений таким образом, чтобы степени всех простых множителей оказались чётными. Это даст нам вида a 2 ≡b 2 (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) уже имеет нужный вид:
Рациональное решето, как и общее решето числового поля, не может получить разложение чисел вида p m , где p — простое число, а m — целое. Проблема не является слишком большой — статистически такие числа редки и, кроме того, существует простой и быстрый процесс проверки, что заданное число имеет такой вид. Видимо, наиболее элегантным методом является проверка, не выполняется ли для 1 < b < log(n), с помощью целочисленной версии метода Ньютона для вычисления корня
Наибольшей проблемой является нахождение чисел z , таких, что как z , так и z + n являются B -гладкими . Для любого заданного B пропорция B -гладких чисел уменьшается быстро с размером числа. Так что, если n велико (скажем, сотня цифр), будет трудно или почти невозможно найти достаточное количество чисел z , чтобы заставить алгоритм заработать. Преимущество общего алгоритма решета числового поля заключается в том, что нужно найти гладкие числа порядка n 1/ d для некоторого положительного целого d (обычно 3 или 5), вместо порядка n , как требуется в данном алгоритме.