[cite]Autore: renatoram[/cite]La cosa piu' bella e' che... i numeri tirati dai dadi saranno meno casuali di un buon randomizzatore informatico
Già, è un po' triste... ma come dice l'autore stesso tra le righe, l'ha fatto per ricevere meno lamentele ;-)
È che la sfiga esiste, ma la rabbia di perdere fa sembrare l'evento più raro che non quanto sia effettivamente, e quindi dubitare del servizio che ti ha fornito il tiro di dado.
[cite]Autore: renatoram[/cite]che hanno dentro un isotopo radioattivo, oppure che misurano la radiazione solare, e che percio' sono "casuali per natura"
In realtà anche il rumore elettronico di una resistenza "calda" è un evento quantistico, non c'è bisogno di scomodare materiali radioattivi per raccogliere un po' di neghentropia;
i processori VIA hanno un generatore hardware molto rapido che utilizza le instabilità di oscillatori non bloccati in frequenza.
Ma anche senza hardware dedicato, si possono tirare fuori svariati bit al secondo semplicemente ascoltando un po' di interrupt e controllando un contatore molto rapido (di solito, l'RDTSC del processore); è così che fanno i
Sistemi Operativi Seri a fornire
Numeri Casuali Seri nel loro periferiche
/dev/random; chiaramente tutte queste sono fonti di (negh)entropia piuttosto scarse e mal tarate, ma architetture come
Yarrow (o il più recente
Fortuna) sono pensate proprio per "concentrare" la casualità di queste fonti ed estrarne distribuiti in modo uniforme (se invece servono numeri distribuiti secondo altre distribuzioni, ad esempio la normale, ci sono trucchetti matematici per ottenerli a partire da numeri casuali distribuiti in modo uniforme).
Altra "aggravante" della (spettacolare) inutilità di quell'oggetto è il fatto che per un server di gioco online
non è necessario che i numeri siano realmente casuali, è sufficiente che siano indistinguibili da questi (e quindi imprevedibili e ben distribuiti); in pratica moltissimi generatori pseudo-casuali andrebbero più che bene bene, a patto che gli utenti non ne conoscano il seed (beh chiaramente sto parlando di PRNG
buoni, come ad esempio il
Mersenne Twister, non robaccia come la
rand() delle librerie di sistema della maggior parte dei linguaggi). Idem per le simulazioni fisiche di tipo Monte-Carlo, un generatore pseudo-casuale con
buone caratteristiche matematiche (come il Mersenne Twister, per esempio) è spesso da preferirsi a un generatore "vero" per almeno due motivi: è molto molto molto più veloce (il M.T. è 4 volte più veloce della
rand() standard del C, nonostante gli sia infinitamente migliore) e permette di avere esperimenti riproducibili (il che non vuol dire che devi farli sempre con lo stesso seed, anzi è bene ripeterli parecchie volte con seed diversi; ma magari è bene tenerseli da parte, in modo da poterci tornare in seguito, in caso di dubbi, senza dover immagazzinare tutti i numeri generati ma soltanto il seed).