Это не официальный сайт wikipedia.org 01.01.2023

Алгоритм Поклингтона — Википедия

Алгоритм Поклингтона

Алгоритм Поклингтона — это техника решения конгруэнтного уравнения вида

x 2 a ( mod p ) ,

где x и a — целые числа и a является квадратичным вычетом.

Алгоритм является одним из первых эффективных методов решения такого уравнения. Алгоритм описал Г.К. Поклингтон[en] в 1917 году[1].

АлгоритмПравить

(Замечание: Все знаки   означают ( mod p )  , если не сказано другое.)

Вход:

  • p, нечётное простое число
  • a, целое число, являющееся двоичным вычетом ( mod p )  .

Выход:

  • x, целое число, удовлетворяющее тождеству x 2 a  . Заметим, что если x является решением, то −x также является решением и, поскольку p нечётно, x x  . Таким образом, всегда существует второе решение, если хотя бы одно найдено.

Метод решенияПравить

Поклингтон рассматривает 3 различных случая для p:

Первый случай, если p = 4 m + 3  , с m N  , решение равно x ± a m + 1  .

Второй случай, если p = 8 m + 5  , с m N   и

  1. a 2 m + 1 1  , решение равно x ± a m + 1  .
  2. a 2 m + 1 1  , 2 не является (квадратичным) вычетом, так что 4 2 m + 1 1  . Это означает, что ( 4 a ) 2 m + 1 1  , так что y ± ( 4 a ) m + 1   является решением y 2 4 a  . Следовательно, x ± y / 2   или, если y нечётно, x ± ( p + y ) / 2  .

Третий случай, если p = 8 m + 1  , положим D a  , так что уравнение превращается в x 2 + D 0  . Теперь методом проб и ошибок находим t 1   и u 1  , такие, что N = t 1 2 D u 1 2   не является квадратичным вычетом. Далее пусть

t n = ( t 1 + u 1 D ) n + ( t 1 u 1 D ) n 2  
u n = ( t 1 + u 1 D ) n ( t 1 u 1 D ) n 2 D  .

Теперь выполняются следующие равенства:

t m + n = t m t n + D u m u n  
u m + n = t m u n + t n u m  
t n 2 D u n 2 = N n  .

Если p имеет вид 4 m + 1   (что верно, если p имеет вид 8 m + 1  ), D является квадратичным вычетом и t p t 1 p t 1 , u p u 1 p D ( p 1 ) / 2 u 1  . Теперь равенства

t 1 t p 1 t 1 + D u p 1 u 1  
u 1 t p 1 u 1 + t 1 u p 1  

дают решение t p 1 1 , u p 1 0  .

Пусть p 1 = 2 r  . Тогда 0 u p 1 2 t r u r  . Это означает, что либо t r  , либо u r   делятся на p. Если делится u r  , положим r = 2 s   и проводим аналогичные выкладки с 0 2 t s u s  . Не все u i   делятся на p, так, u 1   не делится. Случай u m 0   с нечётным m невозможен, поскольку выполняется t m 2 D u m 2 N m   и это должно означать, что t m 2   конгруэнтно квадратичному невычету, получили противоречие. Таким образом, цикла прерывается, когда t l 0   для некоторого l. Это даёт D u l 2 N l  , а поскольку D   является квадратичным вычетом, l должно быть чётным. Положим l = 2 k  . Тогда 0 t l t k 2 + D u k 2  . Таким образом, решение уравнения x 2 + D 0   получаем путём решения линейного уравнения u k x ± t k  .

ПримерыПравить

Ниже приведены 3 примера, соответствующие 3 различным случаям. В примерах все знаки   означает сравнение по модулю.

Пример 1Править

Решаем конгруэнтное уравнение

x 2 18 ( mod 23 ) .  

Модуль равен 23. Поскольку 23 = 4 5 + 3  , m = 5  . Решениями должны быть значения x ± 18 6 ± 8 ( mod 23 )  , и это действительно решения: ( ± 8 ) 2 64 18 ( mod 23 )  .

Пример 2Править

Решаем конгруэнтное уравнение

x 2 10 ( mod 13 ) .  

Модуль равен 13. Поскольку 13 = 8 1 + 5  , m = 1  . Проверяем, что 10 2 m + 1 10 3 1 ( mod 13 )  . Таким образом, решением будет x ± y / 2 ± ( 4 a ) 2 / 2 ± 800 ± 7 ( mod 13 )  . И это действительно решения: ( ± 7 ) 2 49 10 ( mod 13 )  .

Пример 3Править

Решаем конгруэнтное уравнение x 2 13 ( mod 17 )  . Запишем уравнение в виде x 2 13 = 0  . Сначала найдём t 1   и u 1  , такие, что t 1 2 + 13 u 1 2   является квадратичным невычетом. Возьмён, например, t 1 = 3 , u 1 = 1  . Найдём t 8  , u 8  , начав с

t 2 = t 1 t 1 + 13 u 1 u 1 = 9 13 = 4 13 ( mod 17 ) ,  ,
u 2 = t 1 u 1 + t 1 u 1 = 3 + 3 6 ( mod 17 ) .  

Продолжим аналогично t 4 = 299 7 ( mod 17 ) u 4 = 156 3 ( mod 17 )  , t 8 = 68 0 ( mod 17 ) u 8 = 42 8 ( mod 17 ) .  

Поскольку t 8 = 0  , получаем 0 t 4 2 + 13 u 4 2 7 2 13 3 2 ( mod 17 )  , что ведёт к уравнению 3 x ± 7 ( mod 17 )  . Последнее имеет решения x ± 8 ( mod 17 )  . Действительно, ( ± 8 ) 2 = 64 13 ( mod 17 )  .

ПримечанияПравить

  1. Pocklington, 1917, с. 57–58.

ЛитератураПравить

  • H.C. Pocklington. Тhe direct solution of the quadratic and cubic binomial congruences with prime moduli // Proceedings of the Cambridge Philosophical Society. — 1917. — Т. 19.