Тест Миллера-Рабина — различия между версиями
(Новая страница: «требуется дунуть») |
|||
Строка 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> | ||
+ | |||
+ | [[Категория: Теория чисел]] |
Версия 17:17, 29 июня 2010
Эта статья находится в разработке!
Можно существенно улучшить тест Ферма, заметив, что если
— простое нечетное, то для есть только два квадратных корня по модулю и . Таким образом, квадратный корень из равен . Если опять нечетно, то мы можем снова извлечь корень и так далее. Первый вариант алгоритма предлагает использовать только одно деление:Тест Леманна
Если для какого-либо целого числа
меньшего не выполняется условие , то число — возможно простое, причем вероятность ошибки не превышает .Этот тест можно естественным образом улучшить, если извлекать корень по модулю не один раз, а столько, сколько получится.
Тест Рабина-Миллера
Запишем
в виде , где нечетно, а неотрицательно: называется сильно возможно простым по основанию , если выполняется одно из двух условий:{{Определение |definition=Пусть
— нечетное число, большее . Число однозначно представляется в виде , где четно. Целое число называется свидетелем простоты числа , если выполняется два условия:- не делится на
- , такое что