RANDU: il generatore di numeri pseudocasuali che ingannò la scienza
Negli anni ’60, nei laboratori di calcolo scientifico, un piccolo dettaglio algoritmico avrebbe cambiato per sempre il modo in cui gli studiosi guardano ai numeri casuali. Quel dettaglio si chiamava RANDU, uno dei generatori di numeri pseudocasuali più diffusi… e più problematici della storia.
Che cos’è RANDU?
RANDU era un generatore lineare congruenziale, un algoritmo progettato per produrre sequenze di numeri apparentemente casuali secondo la formula:
$$ X_{n+1} = (a \cdot X_{n} + c) \mod m $$
Nel caso specifico di RANDU, i parametri utilizzati erano:
- $a = 65539$
- $m = 2^{31}$
- $c = 0$
Questo semplice algoritmo era incorporato nei computer IBM dell’epoca ed era utilizzato nelle simulazioni Monte Carlo in fisica, ingegneria e statistica. All’inizio, sembrava un generatore efficiente e affidabile, tanto da guadagnarsi la fiducia di intere generazioni di scienziati.
L’illusione della casualità
Se generiamo un milione di numeri con RANDU e ne analizziamo l’istogramma, otteniamo una distribuzione apparentemente uniforme:

Allo stesso modo, se rappresentiamo i numeri come triple successive $(X_n, X_{n+1}, X_{n+2})$ nello spazio tridimensionale, il comportamento può sembrare corretto:

A prima vista, tutto sembra “casuale” e uniforme.
Il problema nascosto: 15 piani nello spazio 3D
Tuttavia, ruotando leggermente la visualizzazione tridimensionale, appare la verità:

In uno spazio tridimensionale, i punti non si distribuiscono uniformemente come ci si aspetterebbe da numeri casuali, ma cadono su 15 piani distinti. Questo comportamento è il risultato di una scelta inadeguata dei parametri del generatore.
In altre parole, la sequenza sembra casuale se osservata singolarmente, ma le correlazioni tra numeri consecutivi introducono pattern regolari.
Conseguenze pratiche
Il difetto di RANDU non era solo teorico: le simulazioni Monte Carlo basate su questo generatore potevano fornire risultati distorti e falsamente coerenti. La scienza dell’epoca stava interpretando come casuale ciò che in realtà era prevedibile e strutturato.
Questo episodio è diventato un caso di studio classico sull’importanza di verificare la qualità dei generatori di numeri pseudocasuali, specialmente prima di usarli in applicazioni critiche. Ancora oggi, nei campi della simulazione, della crittografia e dell’intelligenza artificiale, il principio rimane valido: un numero casuale mal progettato può compromettere interi esperimenti.
Una curiosità dello scandalo
Ai tempi, quando gli utenti contattavano l’assistenza software per denunciare questo comportamento anomalo, la risposta tipica era:
“Noi garantiamo che un numero sia realmente aleatorio, non che vari numeri lo siano.”
Un’affermazione che, a posteriori, ha un effetto quasi comico… ma sottolinea quanto fosse sottovalutata la problematica della correlazione tra numeri successivi.
RANDU ha mostrato i limiti dei generatori lineari congruenziali, mettendo in luce l’importanza cruciale della scelta dei parametri per ottenere sequenze pseudocasuali affidabili.