Принцип алгоритму:
Міллер-Рабін — це імовірнісний тест простоти, заснований на розширенні малої теореми Ферма. Для непарного числа n запишіть n-1 як 2^r × d, потім перевірте, чи виконується:
a^d ≡ 1 (mod n) 或 a^(2^i × d) ≡ -1 (mod n) 对某个 0 ≤ i < r
Кількість раундів тестування та точність:
- Імовірнісне тестування:Випадково вибрати основу a; кожен раунд тесту знижує похибку до 1/4
- k раундів тестування:Теоретична похибка ≤ (1/4)^k, фактична похибка значно менша
- Детерміноване тестування:Для n < 3 317 044 064 679 887 385 961 981, використання специфічного набору основ {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37} дає 100% точний результат
Особливі випадки:
- Малі прості числа:Числа 2, 3, 5, 7 визначаються безпосередньо
- Парні числа:Всі парні числа, крім 2, є складеними
- Числа Кармайкла:Числа, що проходять тест Ферма, але насправді є складеними (наприклад, 561), правильно визначаються тестом Міллера-Рабіна