Test di Miller-Rabin
Il test di primalità di Miller-Rabin è un test di primalità, ossia un algoritmo per determinare se un numero intero è primo. La sua versione originale, dovuta a Gary Miller, è deterministica, ma dipende dall'ipotesi di Riemann generalizzata, un'importante congettura matematica tuttora aperta. L'algoritmo è stato successivamente modificato da Michael Rabin che ne ha ottenuto una versione probabilistica simile al test di Fermat e al test di Solovay-Strassen.
Definizione
modificaSia un numero intero positivo non primo (quindi dispari). I numeri positivi tali che e tali che sia uno pseudoprimo di Eulero forte in base sono non più di un quarto di tutti i numeri positivi tali che
Questo è il test di primalità che stavamo presentando:
Fissato un intero dispari lo possiamo scrivere come , con e dispari. Il test si sintetizza nei seguenti:
- scegliamo a caso un intero con e calcoliamo
- se allora non è primo, ed abbiamo finito;
- se calcoliamo Se allora è primo oppure è pseudoprimo forte in base ;
- se non vale che calcoliamo Se allora è pseudoprimo forte in base ;
- se non vale che passiamo a e a tutte le altre potenze di 2 moltiplicate per Se tutti i , per non sono mai congrui a modulo allora non è un primo. Altrimenti è uno pseudoprimo forte in base .
Per tutti gli altri test per intero positivo, la definizione è analoga:
- scegliamo a caso un intero , con , e calcoliamo ;
- se allora non è primo, ed abbiamo finito;
- se calcoliamo e procediamo come nel primo test. In questo modo troviamo che non è primo, oppure che è pseudoprimo forte in base .
Considerazioni finali sul test
modificaSi può subito notare che, a differenza dei test di Fermat e test di Wilson, qui i calcoli sono minori in numero e molto più semplici, e si può dimostrare che il livello di complessità computazionale è polinomiale, mentre gli altri due presentano una difficoltà computazionale esponenziale. Per quanto riguarda l'affidabilità, anch'essa è molto buona in questo test. Infatti, nonostante sia un test probabilistico, quando effettuiamo il test , sappiamo che la probabilità che n non sia primo e sia uno pseudoprimo forte in base è minore di 1/4, e, quindi, la probabilità che non sia primo ma passi i test , , ..., è minore di , ossia piccolissima rispetto a quella del test di Fermat.
Assumendo l'ipotesi di Riemann generalizzata, il test di Miller-Rabin si può facilmente modificare in modo da diventare un vero test di primalità e l'algoritmo ad esso associato avrebbe costo [1].
Note
modificaVoci correlate
modificaAltri progetti
modifica- Wikibooks contiene testi o manuali sul Test di Miller-Rabin
Collegamenti esterni
modifica- (EN) Miller-Rabin test, su Enciclopedia Britannica, Encyclopædia Britannica, Inc.
- (EN) Eric W. Weisstein, Rabin-Miller Strong Pseudoprime Test, su MathWorld, Wolfram Research.