Алгоритм Корнаккиа
В вычислительной теории чисел алгоритм Корнаккиа — это алгоритм решения диофантового уравнения. , где и d и m взаимно просты . Алгоритм был описан в 1908 году Джузеппе Корнаккиа. [ 1 ]
Алгоритм
[ редактировать ]Сначала найдите любое решение (возможно, с помощью алгоритма, указанного здесь ); если нет такого существуют, то не может быть примитивного решения исходного уравнения. Без ограничения общности можно считать, что r 0 ≤ m / 2 (если нет, то замените r 0 на m - r 0 , которое все равно будет корнем - d ). Затем используйте алгоритм Евклида , чтобы найти , и так далее; остановиться, когда . Если целое число, то решение будет ; в противном случае попробуйте другой корень -d . , пока не будет найдено решение или пока не будут исчерпаны все корни В этом случае примитивного решения нет.
Чтобы найти непримитивные решения ( x , y ) , где gcd( x , y ) = g ≠ 1 , обратите внимание, что существование такого решения подразумевает, что g 2 делит m (и, что эквивалентно, если m не содержит квадратов , то все решения примитивны). Таким образом, приведенный выше алгоритм можно использовать для поиска примитивного решения ( u , v ) задачи u 2 + дв 2 = м / г 2 . Если такое решение найдено, то ( gu , gv ) будет решением исходного уравнения.
Пример
[ редактировать ]Решите уравнение . Квадратный корень из −6 (по модулю 103) равен 32, а 103 ≡ 7 (по модулю 32); с и , существует решение x = 7, y = 3.
Ссылки
[ редактировать ]- ^ Корнаккья, Г. (1908). «Об одном методе решения уравнения в целых числах ". Математический журнал Баттальини . 46 : 33–90.
Внешние ссылки
[ редактировать ]- Базилла, Дж. М. (2004). «О решениях ( PDF ) . Proc. Japan Acad . 80(A): 40–41.