Quanto sono casuali questi numeri?

0

Sto facendo uno script per creare numeri casuali true . Uso le API da RANDOM.ORG e ANU QRNG .

Il metodo che ho è che ottengo un numero da uno dei siti e lo uso come seme nell'algoritmo di Mersenne Twister che mi dà un numero nell'intervallo desiderato.

Domanda 1: un Mersenne Twister con un seme veramente casuale lo rende meno casuale del semplice utilizzo del numero direttamente dall'API.

Il problema con il mio metodo è che l'API RANDOM.ORG può darti numeri nell'intervallo -1e9 e 1e9. Se volessi generare un numero compreso tra 1 e 1e20, non ci sarebbero abbastanza semi per coprire tutti i numeri.

Esempio su numeri più piccoli:
Diciamo che ho una vera API di generatore di numeri casuali chiamata blabla.

Blabla ti darà sempre un numero veramente casuale da 1 a 5.

Usi il numero che ottieni dall'API di blabla come seme per un Mersenne Twister. Ora va tutto bene se vuoi generare numeri da 1 a 5, ma se volessi generare numeri da 1 a 10, 5 o meno delle possibilità avresti uno 0% di essere generato (perché 5 semi diversi non possono generare 10 numeri diversi).

Penso che la soluzione per questo sia di fare richieste multiple per numeri casuali, quindi se volessi generare numeri da 1 a 10 con blabla's api come nell'esempio sopra, ho appena generato 3 numeri dall'api di blabla e li ho sommati. In questo modo l'intervallo va da 3 a 15 (3 perché il numero minimo che genererebbe è 1 tre volte di seguito, e 15 perché 5 è il numero più grande che potrebbe generare 3 volte di seguito). 15 - 3 è 12 e 12 > 10 che significa che ci sono più semi (12) rispetto ai possibili numeri nell'intervallo desiderato e ci sono abbastanza semi per ogni numero da apparire almeno una volta (non deve apparire una volta, ma può, rendendolo casuale)

La stessa cosa accade con il generatore ANU QRNG dato che può generare numeri da 0 a 65535.

Domanda 2: la logica spiegata sopra è corretta o sto fraintendendo completamente il concetto o numeri veramente casuali?

Domanda 3: ci sono modi migliori per ottenere un numero casuale con un intervallo maggiore dell'intervallo del vero generatore casuale.

    
posta Janekmuric 13.06.2016 - 14:07
fonte

0 risposte

Leggi altre domande sui tag