DI RECENTE ACCOMAZZI...
CERCA
» Ricerca avanzata
MAILING LIST

Se vuoi iscriverti alla mailing list di Luca Accomazzi inserisci qui la tua mail:

Vuoi ricevere i messaggi immediatamente (50 invii / giorno) o in differita e in gruppo
(due invii / giorno)?

» Vuoi saperne di più?

A domanda rispondo - sezione Windows

Assolutamente a caso

Come si fa a definire un processo logico standard che mi dia come risultato un numero casuale?

Voglio dire, un calcolatore è una macchina perfettamente prevedibile, che esegue programmi su dati, e sia i programmi che i dati sono digitali. Allora, com'è possibile che alcuni programmi simulino il lancio di un dado? Non dovrebbe sempre uscire lo stesso numero? Perché tutte le volte che lancio un videogioco i personaggi controllati dal PC si muovono lungo percorsi differenti, appaiono da posizioni diverse, eccetera?

Rudy

L'unico sistema veramente valido per cui un PC può ottenere numeri casuali è quello di sfruttare le connessioni al mondo esterno, dove la casualità è facile a trovarsi.

Un trucco piuttosto diffuso dai programmatori di oggigiorno è quello di leggere l'orologio di bordo (ogni computer ne ha uno, come sapete: e infatti quando creiamo un documento questo appare etichettato con la data e l'ora in cui abbiamo operato).
Anziché utilizzare questa informazione direttamente, si prendono le cifre meno significative (tipo i centesimi di secondo) e li si utilizza come se fossero un numero casuale.

Il mio primo personal computer, un Apple II del 1980, non aveva orologio di bordo. Come seme per la generazione di numeri pseudocasuali utilizzava il tempo in microsecondi che era passato tra la pressione degli ultimi due tasti digitati dall'utente.
Lo Apple II usava le ultime cifre, le meno significative, per il seme. Da un buon seme puoi ottenere una decente sequenza preudocasuale semplicemente moltiplicando il seme per un numero primo, preferibilmente molto grande, scartando le cifre più significative e tenendo le altre. Ripetere ad libitum.

Pretty Good Privacy, il più sicuro sistema di crittografia disponibile alla gente normale, quando genera le chiavi di protezione chiede all'utilizzatore di scuotere il mouse: usa poi le coordinate visitate dal mouse come chiave pseudocasuale.