Изменения

Перейти к: навигация, поиск

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

2531 байт добавлено, 17:17, 29 июня 2010
Нет описания правки
требуется дунуть{{В разработке}} Можно существенно улучшить тест Ферма, заметив, что если <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> [[Категория: Теория чисел]]
20
правок

Навигация