È possibile generare numeri casuali attraverso la simulazione del processo fisico?

StackOverflow https://stackoverflow.com/questions/620921

  •  05-07-2019
  •  | 
  •  

Domanda

È possibile generare numeri casuali attraverso la simulazione del processo fisico?

Se simulo il tiro fisico di un dado (cioè lo prendi in mano, lo scuoti in mano, lo rilasci sul tavolo e registra da che parte finisce "in alto" ...) che produrrà un " casuale " numero o avrei solo una simulazione complessa che in realtà non realizza nulla.

È stato utile?

Soluzione

Avresti una simulazione complessa che in realtà non realizza nulla.

(diverso da quello di restituire lo stesso valore ogni volta o aggiungere complessità non necessaria a un PRNG esistente)

A meno che non si esegua il seeding dell'ambiente simulato con " random " variabili (ovvero dipendono da un modo diverso di generare numeri casuali), otterrai sempre lo stesso valore indietro, perché ogni fase del processo avverrà allo stesso modo ogni volta.

Supponi di aver usato un generatore di numeri pseudo casuali di base (PRNG):

Poiché la tua simulazione sarebbe casuale solo come l'altro PRNG che stavi usando, puoi anche usare direttamente l'altro PRNG, senza tutto il lavoro extra! (In effetti, la tua simulazione potrebbe non fare nulla se non rendere l'output meno casuale rispetto ai valori del tuo PRNG di base)

Altri suggerimenti

Sì, avresti " solo una simulazione complessa che in realtà non realizza nulla " ;.

Perché simulare un processo fisico casuale, quando potresti effettivamente usarne uno reale?

Ci sono pile di domande sui generatori di numeri casuali su SO. Eccone alcuni:

Generatore di numeri casuali reali

Esistono generatori di numeri casuali senza stato?

Che tipo di numero casuale Generator è utilizzato nel settore dei giochi da casinò?

Il tuo algoritmo sarà un generatore di numeri pseudo-casuale, vale a dire che prenderà un seme casuale e produrrà stringhe di numeri potenzialmente grandi che sembrano abbastanza casuali.

Non vi è alcuna garanzia, tuttavia, che l'output casuale sarà della qualità necessaria per la crittografia o altri scopi. Sarei propenso a pensare che ci saranno ripetuti schemi indesiderati nella tua produzione, e che troppo lavoro andrà verso la fisica del problema e non abbastanza per produrre pseudo casualità. (Ci scusiamo per l'aspirante bontà, ma in poche parole.) Esistono generatori di pseudo-numeri efficaci e vorrei usare uno degli scaffali.

Detto questo, questo potrebbe essere un esperimento interessante e informativo per i tuoi scopi.

Più tardi.

A meno che non si iniettino alcuni fattori casuali (o pseudo casuali) la simulazione produrrà gli stessi risultati ogni volta.

Sarà comunque un numero pseudo-casuale perché presumibilmente userai un generatore di numeri pseudo-casuale per simulare tutto il rimbalzo del dado nelle tue mani.

Per prima cosa devi definire 'random'. Puoi generare numeri banalmente imprevedibili usando uno strano set di calcoli, certo. Ma non otterrai casualità utili o una distribuzione uniforme dei numeri.

Una simulazione fisica come da te descritta richiederebbe effettivamente una sorta di generatore di numeri casuali ad un certo punto del calcolo. Fortunatamente, random () è facile da usare.

A meno che tu non sia pronto a modellare lo stato quantico di due interi stampi non avrai nulla di casuale ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top