Символ Якоби

Из Википедии, бесплатной энциклопедии
Карл Густав Якоб Якоби, представивший этот символ.
к
н
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1 1
3 0 1 −1
5 0 1 −1 −1 1
7 0 1 1 −1 1 −1 −1
9 0 1 1 0 1 1 0 1 1
11 0 1 −1 1 1 1 −1 −1 −1 1 −1
13 0 1 −1 1 1 −1 −1 −1 −1 1 1 −1 1
15 0 1 1 0 1 0 0 −1 1 0 0 −1 0 −1 −1
17 0 1 1 −1 1 −1 −1 −1 1 1 −1 −1 −1 1 −1 1 1

Символ Якоби ( k / n ) для различных k (вдоль верха) и n (вдоль левой стороны). только 0 ≤ k < n Показаны , поскольку согласно правилу (2), приведенному ниже, любой другой k можно уменьшить по модулю n . Квадратичные вычеты выделены желтым цветом - обратите внимание, что ни одна запись с символом Якоби, равным -1, не является квадратичным вычетом, и если k является квадратичным вычетом по модулю взаимно простого n , то ( k / n ) = 1 , но не все записи с символом Якоби, равным 1 (см. строки n = 9 и n = 15 ), являются квадратичными остатками. Обратите также внимание, что если n или k — квадрат, все значения неотрицательны.

Символ Якоби является обобщением символа Лежандра . Представлен Якоби в 1837 году. [1] он представляет теоретический интерес в модульной арифметике и других разделах теории чисел , но его основное применение находится в вычислительной теории чисел , особенно в проверке простоты и факторизации целых чисел ; они, в свою очередь, важны в криптографии .

Определение [ править ]

Для любого целого числа a и любого положительного нечетного целого числа n символ Якоби ( a / n ) определяется как произведение символов Лежандра , соответствующих простым делителям числа n :

где

является простой факторизацией n .

Символ Лежандра ( a / p ) определяется для всех целых чисел a и всех нечетных простых чисел p по формуле

Следуя обычному соглашению для пустого продукта, ( а / 1 ) = 1.

Когда нижний аргумент представляет собой нечетное простое число, символ Якоби равен символу Лежандра.

Таблица значений [ править ]

Ниже представлена ​​таблица значений символа Якоби ( k / n ) с n ≤ 59, k ≤ 30, n нечетным.

к
н
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
3 1 −1 0 1 −1 0 1 −1 0 1 −1 0 1 −1 0 1 −1 0 1 −1 0 1 −1 0 1 −1 0 1 −1 0
5 1 −1 −1 1 0 1 −1 −1 1 0 1 −1 −1 1 0 1 −1 −1 1 0 1 −1 −1 1 0 1 −1 −1 1 0
7 1 1 −1 1 −1 −1 0 1 1 −1 1 −1 −1 0 1 1 −1 1 −1 −1 0 1 1 −1 1 −1 −1 0 1 1
9 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0
11 1 −1 1 1 1 −1 −1 −1 1 −1 0 1 −1 1 1 1 −1 −1 −1 1 −1 0 1 −1 1 1 1 −1 −1 −1
13 1 −1 1 1 −1 −1 −1 −1 1 1 −1 1 0 1 −1 1 1 −1 −1 −1 −1 1 1 −1 1 0 1 −1 1 1
15 1 1 0 1 0 0 −1 1 0 0 −1 0 −1 −1 0 1 1 0 1 0 0 −1 1 0 0 −1 0 −1 −1 0
17 1 1 −1 1 −1 −1 −1 1 1 −1 −1 −1 1 −1 1 1 0 1 1 −1 1 −1 −1 −1 1 1 −1 −1 −1 1
19 1 −1 −1 1 1 1 1 −1 1 −1 1 −1 −1 −1 −1 1 1 −1 0 1 −1 −1 1 1 1 1 −1 1 −1 1
21 1 −1 0 1 1 0 0 −1 0 −1 −1 0 −1 0 0 1 1 0 −1 1 0 1 −1 0 1 1 0 0 −1 0
23 1 1 1 1 −1 1 −1 1 1 −1 −1 1 1 −1 −1 1 −1 1 −1 −1 −1 −1 0 1 1 1 1 −1 1 −1
25 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0
27 1 −1 0 1 −1 0 1 −1 0 1 −1 0 1 −1 0 1 −1 0 1 −1 0 1 −1 0 1 −1 0 1 −1 0
29 1 −1 −1 1 1 1 1 −1 1 −1 −1 −1 1 −1 −1 1 −1 −1 −1 1 −1 1 1 1 1 −1 −1 1 0 1
31 1 1 −1 1 1 −1 1 1 1 1 −1 −1 −1 1 −1 1 −1 1 1 1 −1 −1 −1 −1 1 −1 −1 1 −1 −1
33 1 1 0 1 −1 0 −1 1 0 −1 0 0 −1 −1 0 1 1 0 −1 −1 0 0 −1 0 1 −1 0 −1 1 0
35 1 −1 1 1 0 −1 0 −1 1 0 1 1 1 0 0 1 1 −1 −1 0 0 −1 −1 −1 0 −1 1 0 1 0
37 1 −1 1 1 −1 −1 1 −1 1 1 1 1 −1 −1 −1 1 −1 −1 −1 −1 1 −1 −1 −1 1 1 1 1 −1 1
39 1 1 0 1 1 0 −1 1 0 1 1 0 0 −1 0 1 −1 0 −1 1 0 1 −1 0 1 0 0 −1 −1 0
41 1 1 −1 1 1 −1 −1 1 1 1 −1 −1 −1 −1 −1 1 −1 1 −1 1 1 −1 1 −1 1 −1 −1 −1 −1 −1
43 1 −1 −1 1 −1 1 −1 −1 1 1 1 −1 1 1 1 1 1 −1 −1 −1 1 −1 1 1 1 −1 −1 −1 −1 −1
45 1 −1 0 1 0 0 −1 −1 0 0 1 0 −1 1 0 1 −1 0 1 0 0 −1 −1 0 0 1 0 −1 1 0
47 1 1 1 1 −1 1 1 1 1 −1 −1 1 −1 1 −1 1 1 1 −1 −1 1 −1 −1 1 1 −1 1 1 −1 −1
49 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1
51 1 −1 0 1 1 0 −1 −1 0 −1 1 0 1 1 0 1 0 0 1 1 0 −1 1 0 1 −1 0 −1 1 0
53 1 −1 −1 1 −1 1 1 −1 1 1 1 −1 1 −1 1 1 1 −1 −1 −1 −1 −1 −1 1 1 −1 −1 1 1 −1
55 1 1 −1 1 0 −1 1 1 1 0 0 −1 1 1 0 1 1 1 −1 0 −1 0 −1 −1 0 1 −1 1 −1 0
57 1 1 0 1 −1 0 1 1 0 −1 −1 0 −1 1 0 1 −1 0 0 −1 0 −1 −1 0 1 −1 0 1 1 0
59 1 −1 1 1 1 −1 1 −1 1 −1 −1 1 −1 −1 1 1 1 −1 1 1 1 1 −1 −1 1 1 1 1 1 −1

Свойства [ править ]

Следующие факты, даже законы взаимности, являются прямыми выводами из определения символа Якоби и соответствующих свойств символа Лежандра. [2]

Символ Якоби определяется только тогда, когда верхний аргумент («числитель») является целым числом, а нижний аргумент («знаменатель») — положительным нечетным целым числом.

1. Если n (нечетное) простое число, то символ Якоби ( a / n ) равен (и пишется так же, как) соответствующему символу Лежандра.
2. Если a b (mod n ) , то
3.

Если верхний или нижний аргумент фиксирован, символ Якоби является полностью мультипликативной функцией в оставшемся аргументе:

4.
5.

Закон квадратичной взаимности : если m и n — нечетные положительные взаимно простые целые числа, то

6.

и его добавки

7. ,

и

8.

Объединение свойств 4 и 8 дает:

9.

Как символ Лежандра:

  • Если ( a / n ) = −1, то a — квадратичный невычет по модулю n .

Но, в отличие от символа Лежандра:

Если ( a / n ) = 1, то a может быть или не быть квадратичным вычетом по модулю n .

Это связано с тем, что для того, чтобы a был квадратичным вычетом по модулю n , он должен быть квадратичным вычетом по модулю каждого простого множителя n . Однако символ Якоби равен единице, если, например, a не является вычетом по модулю ровно двух простых множителей числа n .

Хотя символ Якоби не может быть единообразно интерпретирован в терминах квадратов и неквадратов, его можно единообразно интерпретировать как знак перестановки по лемме Золотарева .

Символ Якоби ( a / n ) является характером Дирихле по модулю n .

Вычисление символа Якоби [ править ]

Приведенные выше формулы приводят к эффективному O (log a log b ) [3] алгоритм вычисления символа Якоби, аналогичный алгоритму Евклида нахождения НОД двух чисел. (Это не должно вызывать удивления в свете правила 2.)

  1. Уменьшите «числитель» по модулю «знаменатель», используя правило 2.
  2. Извлеките любой четный «числитель», используя правило 9.
  3. Если «числитель» равен 1, правила 3 ​​и 4 дают результат 1. Если «числитель» и «знаменатель» не являются взаимно простыми, правило 3 дает результат 0.
  4. В противном случае «числитель» и «знаменатель» теперь являются нечетными положительными взаимно простыми целыми числами, поэтому мы можем перевернуть символ, используя правило 6, а затем вернуться к шагу 1.

В дополнение к приведенному ниже коду Ризель [4] есть это в Паскале.

Реализация на Lua [ править ]

функция   Якоби  (  n  ,   k  ) 
   утверждает  (  k   >   0   и   k   %   2   ==   1  ) 
   n   =   n   %   k 
   t   =   1 
   while   n   ~=   0   do 
     while   n   %   2   ==   0   do 
       n   =   n   /   2 
       r   =   k   %   8 
       , если   r   ==   3   или   r   ==   5   , то 
         t   =   -  t 
       end 
     end 
     n  ,   k   =   k  ,   n, 
     если   n   %   4   ==   3   и   k   %   4   ==   3   , то 
       t   =   -  t 
     end 
     n   =   n   %   k 
   end 
   , если   k   ==   1   , то 
     вернуть   t 
   , иначе 
     вернуть   0, 
   end 
 end 

Реализация на C++ [ править ]

// a/n представлено как (a,n) 
 int   jacobi  (  int   a  ,   int   n  )   { 
     Assert  (  n   >   0   &&   n  %  2   ==   1  ); 
      //шаг 1 
     a   =   a   %   n  ; 
      интервал   т   =   1  ; 
      интервал   р  ; 
      // шаг 3 
     while   (  a   !=   0  )   { 
         // шаг 2 
         while   (  a   %   2   ==   0  )   { 
             a   /=   2  ; 
              р   =   п   %   8  ; 
              если   (  р   ==   3   ||   р   ==   5  )   { 
                 т   =   -  т  ; 
              } 
         } 
         //шаг 4 
         r   =   n  ; 
          п   =   а  ; 
          а   =   р  ; 
          if   (  a   %   4   ==   3   &&   n   %   4   ==   3  )   { 
             t   =   -  t  ; 
          } 
         а   =   а   %   п  ; 
      } 
     Если   (  п   ==   1  )   { 
         вернуть   т  ; 
      } 
     Еще   { 
         возврат   0  ; 
      } 
 } 

Пример расчетов [ править ]

Символ Лежандра ( a / p ) определяется только для нечетных простых чисел p . Он подчиняется тем же правилам, что и символ Якоби (т. е. взаимности и дополнительным формулам для ( −1 / p ) и ( 2 / п ) и мультипликативность «числителя».)

Задача: учитывая, что 9907 — простое число, вычислите ( 1001 / 9907 ) .

Использование символа Лежандра [ править ]

Использование символа Якоби [ править ]

Разница между двумя расчетами заключается в том, что при использовании символа Лежандра «числитель» необходимо разложить на степени простых чисел, прежде чем символ будет перевернут. Это делает вычисление с использованием символа Лежандра значительно медленнее, чем с использованием символа Якоби, поскольку не существует известного алгоритма факторизации целых чисел с полиномиальным временем. [5] Собственно, именно поэтому Якоби и ввел этот символ.

Тестирование на примитивность [ править ]

Есть еще одно отличие символов Якоби и Лежандра. Если формула критерия Эйлера используется по модулю составного числа, результат может быть, а может и не быть значением символа Якоби, а фактически может даже не быть -1 или 1. Например,

Таким образом, если неизвестно, является ли число n простым или составным, мы можем выбрать случайное число a , вычислить символ Якоби ( а / п ) и сравните ее с формулой Эйлера; если они различаются по модулю n , то n составное; если они имеют одинаковый остаток по модулю n для многих разных значений a , то n « вероятно простое число ».

Это основа вероятностного теста простоты Соловея-Штрассена и его усовершенствований, таких как тест простоты Бэйли-ПСВ и тест простоты Миллера-Рабина .

В качестве косвенного использования его можно использовать в качестве процедуры обнаружения ошибок во время выполнения теста на простоту Лукаса-Лемера , выполнение которого даже на современном компьютерном оборудовании может занять недели при обработке Мерсенна. чисел (самое большое известное простое число Мерсенна по состоянию на декабрь 2018 г.). В именных падежах символ Якоби:

Это справедливо и для конечного остатка и, следовательно, может использоваться в качестве проверки вероятной достоверности. Однако если в аппаратном обеспечении возникает ошибка, существует 50% вероятность того, что вместо этого результат станет 0 или 1 и не изменится при последующих условиях. (если не произойдет другая ошибка, которая снова изменит его на -1).

См. также [ править ]

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

  1. ^ Якоби, CGJ (1837). «О делении кругов и его приложении к теории чисел». Сообщить Ак. Знать. Берлин : 127–136.
  2. ^ Ирландия и Розен, стр. 56–57 или Леммермейер с. 10
  3. ^ Коэн, стр. 29–31.
  4. ^ с. 285
  5. ^ Решето числового поля , самый быстрый из известных алгоритмов, требует
    операции по фактору n . См. Коэн, с. 495

Ссылки [ править ]

Внешние ссылки [ править ]