В этой статье не процитировать какие - либо источники . ( декабрь 2009 г. ) ( Узнайте, как и когда удалить это сообщение-шаблон ) |
В теории чисел , A конгруэнтность квадратов является конгруэнтностью , обычно используемой в целочисленной факторизации алгоритмах.
Вывод [ править ]
Учитывая положительное целое число n , метод факторизации Ферма основан на нахождении чисел x , y, удовлетворяющих равенству
Затем мы можем множить n = x 2 - y 2 = ( x + y ) ( x - y ). Этот алгоритм на практике медленный, потому что нам нужно найти много таких чисел, и только некоторые из них удовлетворяют строгому уравнению. Тем не менее, n также можно факторизовать, если мы можем удовлетворить условие более слабого сравнения квадратов :
Отсюда легко выводим
Это означает, что n делит произведение ( x + y ) ( x - y ). Таким образом, ( x + y ) и ( x - y ) каждый содержит множители n , но эти множители могут быть тривиальными. В этом случае нам нужно найти другие x и y . Вычисление наибольших общих делителей ( x + y , n ) и ( x - y , n ) даст нам эти множители; это можно сделать быстро с помощью алгоритма Евклида.
Сравнения квадратов являются чрезвычайно полезными в алгоритмах факторизации целочисленных и широко используются в, например, квадратичное решето , общее число поля сита , непрерывная дробь на множители и множители Диксона . И наоборот, поскольку поиск квадратных корней по модулю составного числа оказывается вероятностным полиномиальным временем, эквивалентным факторизации этого числа, любой алгоритм целочисленной факторизации может быть эффективно использован для идентификации сравнения квадратов.
Дальнейшие обобщения [ править ]
Также можно использовать факторные базы, чтобы быстрее находить сравнения квадратов. Вместо того, чтобы искать с самого начала, мы находим многие, у которых у есть маленькие простые множители, и пытаемся умножить несколько из них вместе, чтобы получить квадрат в правой части.
Примеры [ править ]
Факторизовать 35 [ править ]
Возьмем n = 35 и находим, что
- .
Таким образом, мы учитываем как
Факторизовать 1649 [ править ]
Используя n = 1649 , в качестве примера нахождения сравнения квадратов, построенных из произведений неквадратов (см . Метод факторизации Диксона ), сначала мы получаем несколько сравнений
из них два имеют только маленькие простые числа в качестве факторов
и их комбинация имеет четную степень каждого малого простого числа и, следовательно, представляет собой квадрат
давая конгруэнтность квадратов
Таким образом, используя значения 80 и 114 в качестве наших x и y, получаем коэффициенты