Тест Миллера-Рабина — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Новая страница: «требуется дунуть»)
 
м (rollbackEdits.php mass rollback)
 
(не показано 7 промежуточных версий 4 участников)
Строка 1: Строка 1:
требуется дунуть
+
{{В разработке}}
 +
 
 +
Можно существенно улучшить тест Ферма, заметив, что если <tex>n</tex> {{---}} простое нечетное, то для <tex>1</tex> есть только два квадратных корня по модулю <tex>n:\ 1</tex> и <tex>-1</tex>. Таким образом, квадратный корень из <tex>a^{n-1},a^\frac{n-1}{2}</tex> равен <tex>\pm 1</tex>. Если <tex>\frac{n-1}{2}</tex> опять нечетно, то мы можем снова извлечь корень и так далее. Первый вариант алгоритма предлагает использовать только одно деление:
 +
 
 +
===Тест Леманна===
 +
 
 +
Если для какого-либо целого числа <tex>a</tex> меньшего <tex>n</tex> не выполняется условие <tex>a^\frac{n-1}{2}=\pm 1\pmod n</tex>, то число <tex>n</tex> {{---}} составное. Если это условие выполняется, то число <tex>n</tex> {{---}} возможно простое, причем вероятность ошибки не превышает <tex>50 \%</tex>.
 +
 
 +
Этот тест можно естественным образом улучшить, если извлекать корень по модулю не один раз, а столько, сколько получится.
 +
 
 +
===Тест Рабина-Миллера===
 +
 
 +
Запишем <tex>n-1</tex> в виде <tex>2^sd</tex>, где <tex>d</tex> нечетно, а <tex>s</tex> неотрицательно: <tex>n</tex> называется сильно возможно простым по основанию <tex>a</tex>, если выполняется одно из двух условий:
 +
 
 +
#<tex>a^d=1\pmod n</tex>
 +
#<tex>(a^d)^{2^r}=-1\pmod n</tex>
 +
 
 +
{{Определение
 +
|definition=Пусть <tex>n</tex> {{---}} нечетное число, большее <tex>1</tex>. Число <tex>n-1</tex> однозначно представляется в виде <tex>n-1=2^sd</tex>, где <tex>d</tex> нечетно. Целое число <tex>a, 1<a<n</tex> называется свидетелем простоты числа <tex>n</tex>, если выполняется два условия:
 +
#<tex>n</tex> не делится на <tex>a</tex>
 +
#<tex>a^d\equiv 1\pmod n</tex> или существует целое <tex>r</tex>, такое что <tex>(a^d)^{2^r}=-1\pmod n</tex>
 +
}}
 +
 
 +
[[Категория: Теория чисел]]

Текущая версия на 19:26, 4 сентября 2022

Эта статья находится в разработке!

Можно существенно улучшить тест Ферма, заметив, что если [math]n[/math] — простое нечетное, то для [math]1[/math] есть только два квадратных корня по модулю [math]n:\ 1[/math] и [math]-1[/math]. Таким образом, квадратный корень из [math]a^{n-1},a^\frac{n-1}{2}[/math] равен [math]\pm 1[/math]. Если [math]\frac{n-1}{2}[/math] опять нечетно, то мы можем снова извлечь корень и так далее. Первый вариант алгоритма предлагает использовать только одно деление:

Тест Леманна

Если для какого-либо целого числа [math]a[/math] меньшего [math]n[/math] не выполняется условие [math]a^\frac{n-1}{2}=\pm 1\pmod n[/math], то число [math]n[/math] — составное. Если это условие выполняется, то число [math]n[/math] — возможно простое, причем вероятность ошибки не превышает [math]50 \%[/math].

Этот тест можно естественным образом улучшить, если извлекать корень по модулю не один раз, а столько, сколько получится.

Тест Рабина-Миллера

Запишем [math]n-1[/math] в виде [math]2^sd[/math], где [math]d[/math] нечетно, а [math]s[/math] неотрицательно: [math]n[/math] называется сильно возможно простым по основанию [math]a[/math], если выполняется одно из двух условий:

  1. [math]a^d=1\pmod n[/math]
  2. [math](a^d)^{2^r}=-1\pmod n[/math]


Определение:
Пусть [math]n[/math] — нечетное число, большее [math]1[/math]. Число [math]n-1[/math] однозначно представляется в виде [math]n-1=2^sd[/math], где [math]d[/math] нечетно. Целое число [math]a, 1\lt a\lt n[/math] называется свидетелем простоты числа [math]n[/math], если выполняется два условия:
  1. [math]n[/math] не делится на [math]a[/math]
  2. [math]a^d\equiv 1\pmod n[/math] или существует целое [math]r[/math], такое что [math](a^d)^{2^r}=-1\pmod n[/math]