Символ Кронекера — Якоби

Материал из testwiki
Перейти к навигации Перейти к поиску

Шаблон:Distinguish Шаблон:Другие значения термина Шаблон:Другие значения термина Символ Кронекера — Якоби — функция, используемая в теории чисел. Иногда называют символом Лежандра — Якоби — Кронекера или просто символом Кронекера.

Символ Кронекера — Якоби является обобщением символов Лежандра и Якоби. Символ Лежандра определён только для простых чисел, символ Якоби — для натуральных нечётных чисел, а символ Кронекера — Якоби расширяет это понятие на все целые числа.

Определение

Символ Кронекера — Якоби (ab) определяется следующим образом:

  • если b — простое нечётное число, то символ Кронекера — Якоби совпадает с символом Лежандра;
  • если b=0, то (a0)={1,if a=±1,0,if a±1;
  • если b=2, то (a2)={0,if a0(mod2),(1)a218,if a1(mod2);
  • если b=1, то (a1)={1,if a<0,1,if a0;
  • если b=δp1pn, где δ=±1, p1,,pn — простые (не обязательно различные), то
(ab)=(aδ)(ap1)(apn),

где (api) определены выше.

Свойства

Связь с перестановками

Пусть n — натуральное число, а a взаимно просто с n. Отображение ma:xaxmodn, действующее на всём /n определяет перестановку πaSn, чётность которой равна символу Якоби:

σ(πa)=(an).

Алгоритм вычисления

1. (Случай b=0) 

 Если b=0 то

  Если |a|=1, то выход из алгоритма с ответом 1

  Если |a|1, то выход из алгоритма с ответом 0

 Конец Если

2. (Чётность b) 

 Если a и b оба чётные, то выйти из алгоритма и вернуть 0

 v=0

 Цикл Пока b – чётное

  v:=v+1;b:=b/2

 Конец цикла

 Если v – чётное, то k=1, иначе иначе k=(1)a218

 Если b<0, то

  b:=b

  Если a<0, то k:=k

 Конец Если

3. (Выход из алгоритма?)
 
 Если a=0, то

  Если b>1, то выход из алгоритма с ответом 0

  Если b=1, то выход из алгоритма с ответом k

 Конец Если

 v:=0

 Цикл Пока a – чётное

  v:=v+1;a:=a/2

 Конец цикла

 Если v – нечётное, то k:=(1)b218k

4. (Применение квадратичного закона взаимности)

 k:=k(1)(a1)(b1)4

 r:=|a|

 a:=bmodr (наименьший положительный вычет)

 b:=r

 Идти на шаг 3

Замечание: для подсчёта (1)a218 не нужно вычислять показатель степени, достаточно знать остаток от деления a на 8. Это увеличивает скорость работы алгоритма.

Список литературы

Шаблон:Характеры