Tutti i generatori di numeri pseudo-casuali sono in definitiva periodici?


24

Tutti i generatori di numeri pseudo-casuali sono in definitiva periodici? O sono periodici alla fine?

Per periodico intendo che, come numeri razionali, alla fine generano una sottosequenza periodica ...

E pseudo-casuale significa generazione algoritmica / matematica di numeri casuali ...


7
Questo è un punto pedante da sottolineare, ma su un computer a memoria finita, ogni programma non-stop è in definitiva periodico. Potresti analizzare l'algoritmo come in esecuzione su una macchina Turing, ma qualsiasi PRNG il cui uso della memoria non ha limiti di tempo non sarebbe molto pratico.
Peter,

@Peter dici "qualsiasi PRNG il cui uso della memoria non ha limiti di tempo non sarebbe molto pratico". Potrebbe non essere pratico quando l'uso della memoria è quadratico o lineare rispetto al tempo, ma se fosse solo logaritmico? Vedi la mia risposta
Don Hatch,

Risposte:


39

Tutti i generatori pseudocasuali che non si basano sulla casualità esterna e usano una quantità limitata di memoria sono necessariamente periodici poiché hanno uno stato finito. Potete immaginarli come enormi automi finiti deterministici che hanno speciali stati di "output" in cui danno il loro output. Tutti gli automi finiti sono infine periodici e quindi tutti i generatori pseudocasuali producono alla fine output periodici.

Tuttavia, la durata del periodo può essere enorme. Ad esempio, un PRNG con uno stato crittografico di 128 bit potrebbe ciclare solo una volta ogni bit di output, e quindi anche se emette un bit ogni nanosecondo, il sistema solare sarà morto prima che il PRNG si ripeta.2128

22


I commenti non sono per una discussione estesa; questa conversazione è stata spostata in chat .
DW

Il collegamento alla chat è interrotto. È ancora possibile visualizzare un registro della discussione? : / @DW
oink

@ cchan3141, l'ho ripristinato; prova ora. Tuttavia, attenzione che i commenti sono di progettazione transitoria e lo stesso vale per le chat room. Se trovi qualcosa che abbia un valore duraturo per gli altri, ti incoraggio a suggerire una modifica alla risposta per incorporare tali informazioni o pubblicare una tua nuova risposta. Grazie!
DW

7

I PRNG sono macchine a stati. Se si basano solo sull'input interno (a differenza di Poker Stars RNG che è una combinazione di hardware e software, che si semina continuamente da ... campioni sonori) otterrai (C, S1, ...) dove C è il valore corrente (o precedente) e S1, ... potrebbe essere un insieme di stati:

Se ci sono possibili valori N (poiché la memoria è limitata) di C e ripetete N + 1 volte, colpirete lo stesso valore per C almeno due volte. Se ripetete 2N + 1 volte, colpirete lo stesso valore per C almeno 3 volte.

Sia T = (Ct, S1t, S2t) un certo stato (valore corrente e altri stati).
Sia M = # {valori per S1} X {valori per S2} X {...} sia il cardinale delle possibili combinazioni di stati (di nuovo: poiché la memoria è limitata).

Se iterate NM + 1 volte l'algoritmo, raggiungerete almeno il doppio dello stesso stato (Ct, S1t, S2t, ...), generando così lo stesso valore di uscita e la stessa sequenza di stati successiva rispetto alla prima volta, e diventando periodico.


6

Semplice esempio di sequenza pseudo-casuale che non è periodica: concatena insieme le rappresentazioni binarie di tutti gli interi positivi, in ordine:

110111001011101111000...

(Prepara un "." E si chiama la costante binaria di Champernowne .)

Ovviamente questa non è di altissima qualità per quanto riguarda le sequenze pseudo-casuali, ma dimostra che è possibile senza usare molta memoria.

π2

Il requisito di memoria illimitata non è un problema per una macchina turing, e probabilmente non è nemmeno un problema in pratica, poiché la crescita è così lenta, ma dipende da cosa si intende utilizzare questa cosa.

2128

2128

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.