Come generare numeri casuali

Numeri casuali su carta
Il problema però resta: come possiamo generare una successione uniforme di numeri casuali senza lanciare i dadi fisicamente? (Una nota a latere: quando si parla di “uniforme” c’è un significato molto specifico, che è la formalizzazione della definizione di casualità che abbiamo visto l’altra volta). I primi tentativi sono più o meno coevi ai primi computer elettronici, il che ha senso per l’ottima ragione che in quel periodo gente come Enrico Fermi, John von Neumann e Stanislaw Ulam si sono inventati i metodi Montecarlo per risolvere numericamente problemi non attaccabili analiticamente. Il nome deriva proprio dal casinò: si fanno tante prove con numeri casuali per vedere quale risultato si ottiene. I computer sono bravi a fare i conti, ma bisogna appunto dare loro i numeri casuali di partenza, e non si possono sempre lanciare dadi, oppure copiare i risultati delle roulette di tutto il mondo.
Il primo tentativo in tal senso fu effettuato dalla RAND Corporation, che alla fine degli anni ’40 costruì una macchina che al suo interno aveva un generatore casuale di impulsi per generare numeri casuali. La fecero girare per un po’ di tempo, raccolsero i risultati e stamparono un libro: A Million Random Digits with 100,000 Normal Deviates (Un milione di cifre casuali, più 100.000 numeri normalmente distribuiti). Per la prima volta si aveva a disposizione una sorgente di cifre casuali a disposizione di tutti. Tra l’altro, il libro è stato ripubblicato nel 2001 e può essere acquistato su Amazon: è divertente leggere le recensioni. Se siete curiosi, comunque, potete scaricarvi gratuitamente il testo. La stessa cosa fu fatta dagli inglesi, per la precisione dal gruppo di Bletchley Park – ricordate Enigma e la decodifica dei codici segreti tedeschi? Il sistema fu battezzato ERNIE e venne usato tra l’altro per generare i numeri estratti nella principale lotteria britannica. Il Post Office, che gestiva la lotteria, filmò persino un documentario, “The Importance of Being E.R.N.I.E.”.
Finalmente nel 1951 nacque il primo computer con un generatore di numeri casuali (TRNG, True Random Number Generator): il Ferranti Mark 1, che aveva un’istruzione che forniva 20 bit casuali sfruttando il rumore elettrico. In questo computer cera lo zampino di Alan Turing, per la cronaca. Tutto bellissimo, vero? Non troppo. L’istruzione macchina progettata da Turing aveva un problema: non potevi testare i tuoi programmi in nessun modo, perché i dati di partenza erano sempre diversi. Quello che serviva era insomma un ossimoro: un generatore deterministico di numeri casuali. Ha senso qualcosa del genere? Non so, però è quello che è stato fatto in pratica con i PRNG (pseudorandom number generators, generatori di numeri pseudocasuali). Ma di questo parlerò la prossima volta.
Leave a comment