Vai al contenuto

Test di Miller-Rabin

Da Wikipedia, l'enciclopedia libera.

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.

Sia 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:

  1. scegliamo a caso un intero con e calcoliamo
  2. se allora non è primo, ed abbiamo finito;
  3. se calcoliamo Se allora è primo oppure è pseudoprimo forte in base ;
  4. se non vale che calcoliamo Se allora è pseudoprimo forte in base ;
  5. 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:

  1. scegliamo a caso un intero , con , e calcoliamo ;
  2. se allora non è primo, ed abbiamo finito;
  3. 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

[modifica | modifica wikitesto]

Si 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].

  1. ^ (EN) Gary Miller, Riemann's Hypothesis and Tests for Primality, in J. Comput. System Sci., vol. 13, n. 3, 1976, pp. 300-317. (PDF)

Voci correlate

[modifica | modifica wikitesto]

Altri progetti

[modifica | modifica wikitesto]

Collegamenti esterni

[modifica | modifica wikitesto]
  Portale Matematica: accedi alle voci di Wikipedia che trattano di matematica