Тест простоти Міллера — Рабіна
Визначення
Тест простоти Міллера — Рабіна (або тест Міллера – Рабіна) — це тест простоти, який визначає, чи є задане ціле число простим. Тест заснований на наступній теоремі:
Теорема (Маленька теорема Ферма)
Якщо n — просте число, а a — будь-яке ціле число, не кратне n, то a^(n-1) ≡ 1 (mod n).
Алгоритм
Алгоритм тесту простоти Міллера — Рабіна такий:
- Виберіть випадкове число
aу діапазоні[2, n-2]. - Обчисліть
x = a^(n-1) (mod n). - Якщо
x = 1, то повернітьtrue(ймовірно,n— просте). - Для
iвід 1 доk(зазвичайk = 100):- Якщо
x = n-1, то повернітьtrue(ймовірно,n— просте). - Інакше
x = x^2 (mod n).
- Якщо
- Поверніть
false(ймовірно,nне є простим).
Детерміністична версія
Первинну версію тесту розробив професор Міллер, і вона була детерміністичною. Проте, її детермінізм покладався на недоведену узагальнену гіпотезу Рімана.
Імовірнісна версія
Міхаель Рабін модифікував тест, щоб отримати безумовний імовірнісний алгоритм. У цьому підході виконується кілька повторень алгоритму. Ймовірність того, що тест помилково визначить складене число як просте, зменшується з кожним повторенням.
Доказові приклади
- Якщо
n— парне, то це не просте число. - Якщо
nнепарне іn % 3 = 0, то це не просте число. - Якщо тест пройдено
kразів, то ймовірність того, щоnне є простим, становить менше ніж1/4^k.
Переваги та недоліки
Переваги:
- Швидкий і ефективний.
- Не вимагає глибоких математичних знань.
- Підходить для великих чисел.
Недоліки:
- Імовірнісний: може помилково визначити складене число як просте.
- Ймовірність помилки залежить від кількості повторень.
Висновки
Тест простоти Міллера — Рабіна є широко використовуваним і ефективним методом визначення простоти цілих чисел. Завдяки своїй швидкості та простоті він придатний для використання в різних додатках, таких як криптографія та теорія чисел.
Часті запитання
- Чи є тест Міллера — Рабіна детерміністичним?
- Яка ймовірність того, що тест помилково визначить складене число як просте?
- Як визначити кількість повторень, необхідних для досягнення заданого рівня довіри?
- Які переваги використання тесту Міллера — Рабіна для виявлення простих чисел?
- Які обмеження тесту Міллера — Рабіна?