Principiul algoritmului:
Miller-Rabin este un test de primalitate probabilistic bazat pe o extensie a teoremei mici a lui Fermat. Pentru un număr impar n, scrieți n-1 ca 2^r × d, apoi testați dacă satisface:
a^d ≡ 1 (mod n) 或 a^(2^i × d) ≡ -1 (mod n) 对某个 0 ≤ i < r
Numărul de runde de testare și precizia:
- Testare probabilistică:Selectați aleator o bază a; fiecare rundă de testare reduce rata de eroare la 1/4
- k runde de testare:Rata de eroare teoretică ≤ (1/4)^k, rata de eroare reală este mult mai mică
- Testare deterministă:Pentru n < 3.317.044.064.679.887.385.961.981, utilizând setul specific de baze {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37} se obțin rezultate 100% precise
Cazuri speciale:
- Numere prime mici:Numere precum 2, 3, 5, 7 sunt identificate direct
- Numere pare:Toate numerele pare, cu excepția lui 2, sunt compuse
- Numere Carmichael:Numerele care trec testul Fermat, dar sunt de fapt compuse (de exemplu, 561) pot fi identificate corect de Miller-Rabin