Test di Miller-Rabin

(Reindirizzamento da 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

modifica

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

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

Altri progetti

modifica

Collegamenti esterni

modifica
  Portale Matematica: accedi alle voci di Wikipedia che trattano di matematica