Generatore di numeri pseudo-casuali da un numero normale calcolabile
Domanda
Non è facile costruire un PRNG in questo modo? Perché non è fatto?
Cioè, per quanto ne so potremmo semplicemente avere un PRNG che prende un seme n. Quando chiedi un bit casuale, prende l'ennesima cifra dell'espansione binaria del numero normale calcolabile e aumenta n.
Il mio primo pensiero è stato che forse non avevamo trovato un numero normale calcolabile, ma abbiamo
Soluzione Ciò renderebbe molto semplice la previsione dell'output. Supponiamo, ad esempio, che tu generi l'intero 0x54a30b7f. Se hai 4GiB di pi (o rumore casuale o un numero normale effettivo), è probabile che ci sarà solo una (o forse una manciata) occorrenza di quel particolare numero intero e posso prevedere con probabilità ragionevolmente alta tutti i numeri futuri. Questo è un grave problema nel caso di PRNG crittograficamente forti. Se invece di una semplice scansione sequenziale usi qualche funzione, devo solo seguire la funzione che se è abbastanza difficile seguirla si trasforma in un PRNG a sé stante. Se non sei preoccupato per la forza crittografica del tuo generatore, allora ci sono modi molto più compatti per generare numeri casuali. Mersenne Twister , ad esempio, ha un periodo molto più ampio senza richiedere una tabella di ricerca 4GiB.