Se il Random
è sufficientemente affidabile per i test statistici, dipende dal contesto in cui si intende utilizzarlo.
Detto questo, ho scritto diversi pezzi di codice Delphi che hanno bisogno di fare statistiche corrette, e ho usato Random
ad es. per ottenere varie distribuzioni null, pseudo-repliche di dati e resamplings. Finora, non mi sono imbattuto in alcun caso nel mio codice in cui Random
avrebbe prodotto risultati distorti o inaffidabili, o risultati che avrebbero precluso il suo uso per il test statistico previsto. Ma ciò che vale per il mio codice non deve necessariamente valere per il tuo.
In caso di dubbio, è possibile analizzare statisticamente i risultati delle chiamate allo Random
(ad esempio in R, SPSS, ecc.) Ed esaminare se la distribuzione dei risultati viola i requisiti di distribuzione per i propri test statistici particolari. [Se sei un vero scienziato, questo è quello che dovresti fare comunque.]
Se hai bisogno di altri PRNG - e.g. la libreria TPMath contiene alcuni. (Per le cose più coinvolti, c'è anche la possibilità di chiamare funzioni statistiche elaborate da R via Delphi.)
Avere per inizializzare una funzione Randomizer è non è affatto raro - devi fare la stessa cosa con un tornado di Mersenne. –
E la possibilità di avviare una funzione casuale è spesso un grande vantaggio. Utilizzando lo stesso seme è possibile duplicare i risultati, che possono essere di grande aiuto, ad esempio durante il debug. –
C'è un'eccellente discussione su questo argomento nel capitolo 6 del libro di Julian Bucknall "Tomes of Delphi: Algorithms And Data Structures" (www.boyet.com) –