Тест Миллера-Рабина — различия между версиями
(→Тест Рабина-Миллера) |
|||
Строка 17: | Строка 17: | ||
{{Определение | {{Определение | ||
− | |definition=Пусть <tex>n</tex> {{---}} нечетное число, большее <tex>1</tex>. Число <tex>n-1</tex> однозначно представляется в виде <tex>n-1=2^sd</tex>, где <tex>d</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>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> | #<tex>a^d\equiv 1\pmod n</tex> или существует целое <tex>r</tex>, такое что <tex>(a^d)^{2^r}=-1\pmod n</tex> |
Версия 13:32, 12 июня 2021
Эта статья находится в разработке!
Можно существенно улучшить тест Ферма, заметив, что если
— простое нечетное, то для есть только два квадратных корня по модулю и . Таким образом, квадратный корень из равен . Если опять нечетно, то мы можем снова извлечь корень и так далее. Первый вариант алгоритма предлагает использовать только одно деление:Тест Леманна
Если для какого-либо целого числа
меньшего не выполняется условие , то число — составное. Если это условие выполняется, то число — возможно простое, причем вероятность ошибки не превышает .Этот тест можно естественным образом улучшить, если извлекать корень по модулю не один раз, а столько, сколько получится.
Тест Рабина-Миллера
Запишем
в виде , где нечетно, а неотрицательно: называется сильно возможно простым по основанию , если выполняется одно из двух условий:
Определение: |
Пусть
| — нечетное число, большее . Число однозначно представляется в виде , где нечетно. Целое число называется свидетелем простоты числа , если выполняется два условия: