Тест Миллера-Рабина — различия между версиями
м |
м (rollbackEdits.php mass rollback) |
||
(не показано 5 промежуточных версий 3 участников) | |||
Строка 5: | Строка 5: | ||
===Тест Леманна=== | ===Тест Леманна=== | ||
− | Если для какого-либо целого числа <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>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>. |
Этот тест можно естественным образом улучшить, если извлекать корень по модулю не один раз, а столько, сколько получится. | Этот тест можно естественным образом улучшить, если извлекать корень по модулю не один раз, а столько, сколько получится. | ||
Строка 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> |
+ | }} | ||
[[Категория: Теория чисел]] | [[Категория: Теория чисел]] |
Текущая версия на 19:26, 4 сентября 2022
Эта статья находится в разработке!
Можно существенно улучшить тест Ферма, заметив, что если
— простое нечетное, то для есть только два квадратных корня по модулю и . Таким образом, квадратный корень из равен . Если опять нечетно, то мы можем снова извлечь корень и так далее. Первый вариант алгоритма предлагает использовать только одно деление:Тест Леманна
Если для какого-либо целого числа
меньшего не выполняется условие , то число — составное. Если это условие выполняется, то число — возможно простое, причем вероятность ошибки не превышает .Этот тест можно естественным образом улучшить, если извлекать корень по модулю не один раз, а столько, сколько получится.
Тест Рабина-Миллера
Запишем
в виде , где нечетно, а неотрицательно: называется сильно возможно простым по основанию , если выполняется одно из двух условий:
Определение: |
Пусть
| — нечетное число, большее . Число однозначно представляется в виде , где нечетно. Целое число называется свидетелем простоты числа , если выполняется два условия: