Possiamo generare numeri casuali usando numeri irrazionali come π ed e?


21

I numeri irrazionali come , e hanno una sequenza univoca e non ripetitiva dopo il punto decimale. Se estraiamo l' -esima cifra da tali numeri (dove è il numero di volte in cui viene chiamato il metodo) e creiamo un numero con le cifre così come sono, non dovremmo ottenere un generatore di numeri casuali perfetto? Ad esempio, se stiamo usando , e , il primo numero è 123, il secondo è 471, il successivo è 184 e così via.πe2nn2eπ


30
Hai una strana definizione di "casuale" nella tua testa. "Casuale" significa "imprevedibile". In che modo la tua sequenza è imprevedibile? Quale definizione di "casuale" hai in mente? Forse quello che chiami "casuale" ha un altro nome.
Eric Lippert,

7
Si noti che l' algoritmo spigot può essere utilizzato per generare qualsiasi cifra esadecimale in pi, senza dover generare cifre precedenti.
rcgldr,

10
@EricLippert Non sono prevedibili tutti i generatori di numeri pseudocasuali?
Federico Poloni,

7
Il termine è apparso più volte: questo è un "numero casuale psuedo" non un "numero casuale". È un numero generato in modo algoritmico (quindi non casuale), ma che ha molte proprietà desiderabili che hanno i numeri casuali. Un altro algoritmo è l'algoritmo "Rubrica di New York", in cui si scende l'elenco dei numeri di telefono, in ordine alfabetico, e si prende l'ultima cifra da ciascuno di essi. Non casuale, ma pseudocasuale con alcuni comportamenti statistici piuttosto carini!
Cort Ammon - Ripristina Monica l'

5
"Pseudo" significa "simile a ma non". Quindi i numeri pseudo casuali sono simili, ma non i numeri casuali. Quindi non sto seguendo il tuo treno di pensieri qui. Ora, i PRNG di cripto-forza hanno la proprietà desiderabile che se lo stato interno è sconosciuto all'attaccante, nessun test statistico che possediamo può distinguere un PRNG cripto da un vero RNG, e ciò include la loro mancanza di prevedibilità. Ma le cifre di pi non hanno quella proprietà; sono altamente prevedibili.
Eric Lippert,

Risposte:


17

Lo svantaggio più evidente è la complessità non necessaria degli algoritmi PRNG basati su numeri irrazionali. Richiedono calcoli molto più per cifra generata di, diciamo, un LCG; e questa complessità in genere aumenta man mano che vai avanti nella sequenza. Il calcolo di 256 bit di π al bit di due quadrilioni ha richiesto 23 giorni su 1000 computer (nel 2010) - una complessità piuttosto proibitiva per un RNG.


47

Per ogni definizione ragionevole di perfetto, il meccanismo che descrivi non è un generatore di numeri casuali perfetto.

  • Non ripetere non è abbastanza. Il numero decimale 0.101001000100001 non si ripete ma è un terribile generatore di cifre casuali, poiché la risposta è "sempre" zero, a volte una e mai nient'altro.

  • In realtà non sappiamo se ogni cifra si verifica ugualmente spesso nell'espansione decimale di πe (anche se sospettiamo che lo facciano).

  • In molte situazioni, richiediamo che i numeri casuali siano imprevedibili (in effetti, se chiedessi a una persona casuale cosa significhi "casuale", probabilmente direbbero qualcosa sull'imprevedibilità). Le cifre delle costanti note sono totalmente prevedibili.

  • Di solito vogliamo generare numeri casuali ragionevolmente rapidamente, ma generare cifre successive di costanti matematiche tende ad essere piuttosto costoso.

  • È vero, tuttavia, che le cifre di π ed  e sembrano statisticamente casuali, nel senso che ogni possibile sequenza di cifre sembra accadere tutte le volte che dovrebbe. Quindi, ad esempio, ogni cifra si verifica molto vicino a una volta su dieci; ogni sequenza di due cifre molto vicina a una su cento e così via.


11
Per il terzo punto, ci deve essere una sorta di input "segreto" al processo di generazione affinché sia ​​imprevedibile (il processo di generazione stesso dovrebbe essere deterministico se non vogliamo fare affidamento su un altro generatore di numeri casuali). Questo input extra è spesso chiamato seed .
Lucertola discreta

6
@Discretelizard Questo è vero, ma non c'è molto spazio per il seeding oltre "restituisci le cifre successive che iniziano con la posizione ". Con il tempo che hai visto 2 log s cifre, quella sequenza si verifica solo un paio di volte entro i primi s 2 cifre di π , quindi è unico nel suo genere entro i primi s cifre con alta probabilità e si conosce il seme. s2logss2πs
David Richerby,

2
@Barmar: A quel punto devi chiedere se questa tecnica è davvero più performante (e più efficiente in termini di spazio) rispetto a un PRNG "standard".
Kevin,

2
Le cifre di pi o e sono completamente imprevedibili, soprattutto perché il visualizzatore / destinatario / codice di interruzione ecc. Non ha idea di quanto sia già lungo nella sequenza. Se inizi dalla cifra numero 237423 della sequenza, ci vorrà così tanto tempo per capire, per essere casuale.
Ingegnere inverso,

10
@DaveBoltman Se non stiamo facendo qualcosa di simile alla crittografia, nessuno si preoccuperà abbastanza di preoccuparsi di capirlo. Se stiamo eseguendo la crittografia, è un presupposto standard che il tuo avversario sappia quale algoritmo stai utilizzando che, in questo caso, include da quale numero irrazionale proviene la sequenza e come stai scegliendo le cifre, ad eccezione di qualsiasi parametro come "inizia con la cifra ". Se l'avversario non sa quale numero stai usando, certo, la cifra successiva potrebbe essere letteralmente qualsiasi cosa, ma poi immaginano che sia s e il gioco sono finiti. my birthday
David Richerby,

29

È crittograficamente inutile perché un avversario può prevedere ogni singola cifra. Inoltre richiede molto tempo.


11
OP non menziona mai la crittografia ...
AnoE

13
@AnoE Quindi? Che questo processo sia crittograficamente inutile è ancora rilevante perché crypto è un avido utente di casualità. Se visualizzi i dispositivi /dev/randome /dev/urandomqualcuno invariabilmente attiverà la crittografia.
Greg Schmit - Ripristina Monica il

6
Saresti sorpreso di quanto sia inutile la sicurezza crittografica nella generazione di PRNG in tempo reale. i numeri irrazionali vengono spesso utilizzati nei PRNG GPU. Ci sono molte applicazioni in cui quanto "sicuro" il tuo PRNG è semplicemente irrilevante. Ciò che conta in qualcosa come la generazione coerente di rumore è la qualità della distribuzione e la frequenza con cui il tuo ciclo si ripete, e gli effetti di correlazione dovuti ai semi adiacenti (che richiederebbero la miscelazione di valanghe). Sinceramente la tua risposta è sbagliata, non appartiene a questo, e probabilmente dovrebbe essere cancellata.
quando il

6
Questa non è una risposta alla domanda. Si noti che l'OP della domanda collegata utilizza numeri casuali per il seeding di un'analisi monte carlo. Dovrebbe essere preso in considerazione un aggiornamento per rispondere alla domanda. mathoverflow.net/questions/26942/…
CramerTV il

8
Certamente ci sono molte applicazioni in cui i PRNG non hanno bisogno di essere crittograficamente sicuri. Ma OP non ha chiesto se fosse utile per alcuni scopi, hanno chiesto se questo metodo fosse un "RNG perfetto". Sebbene non abbiano chiarito che cosa intendano per "perfetto", il fatto che non sia idoneo per uno dei principali utilizzi degli RNG sembra molto rilevante per rispondere a questa domanda.
Geoffrey Brent,

7

( aggiornato dopo che molte persone hanno sottolineato che il generatore di numeri casuali non è la stessa cosa di una singola sequenza normale)

Se chiedi se puoi ottenere una sequenza normale da π (cioè, tutti i numeri appaiono uniformemente), allora ci sono diverse risposte su mathoverflow. Ad esempio, la risposta sulla distribuzione delle cifre di Pi dice:

... si ritiene che π sia un numero normale (~ distribuzione uniforme di ogni sequenza di cifre).

Per i dati sulla distribuzione delle cifre, vedere ad esempio http://www.eveandersson.com/pi/precalculated-frequencies o https://thestarman.pcministry.com/math/pi/RandPI.html (prime 1000 cifre):

inserisci qui la descrizione dell'immagine

Su mathoverflow, ci sono anche belle risposte a:


3
Se ritieni che la domanda sia duplicata, allora perché rispondi? Dovresti semplicemente segnalarlo, non rafforzare il comportamento indesiderato di pubblicazione.
dkaeae

8
@dkaeae Non esiste supporto per duplicati di domande su altri siti. Inoltre, la stessa domanda su siti diversi può ottenere risposte diverse. In questo caso, un sito come Mathematics potrebbe non dare molta importanza ai problemi di sicurezza. Vedi anche questa risposta . Si noti che scoraggiamo porre la stessa domanda su più siti contemporaneamente, poiché ciò tende a portare a sprechi di sforzi. Ma la stessa domanda di persone diverse in momenti diversi su siti diversi è di solito ok.
Lucertola discreta

6
Sfortunatamente, solo perché un numero è normale non significa che l'output delle sue cifre ti dia un buon RNG. I risultati di tale RNG sono ancora del tutto prevedibili. L'accettabilità potrebbe dipendere dall'applicazione. Quindi, non penso sia abbastanza semplice come dire "pi è normale, caso chiuso".
DW

2
Questa è solo un'osservazione empirica per le prime cifre? Cosa si intende con questo?
Maresciallo artigianale

1
@DW Ho detto che ho intenzione di usare una combinazione di numeri come π ed e. E per favore, diciamo come sarà prevedibile l'uscita se non sappiamo fino a che punto è arrivata la sequenza del generatore?
Abhradeep Sarkar,

1

In generale, questo approccio non funziona: "casualità" non significa che ottieni molte cifre diverse, ma ci sono anche altri aspetti. Ad esempio, un test classico consiste nel vedere se tutte le combinazioni di due cifre, tre cifre ecc. Si verificano con la stessa frequenza. Questo sarebbe un test molto semplice, che può escludere evidenti risultati non casuali, ma è ancora troppo semplicistico per verificare un comportamento davvero casuale.

Vedi la pagina di Wikipedia sui test di casualità come una raccolta di collegamenti a fonti primarie al riguardo. Citano una buona quantità di concetti dal suono piuttosto complicato; non è così importante approfondire questo aspetto, ma è chiaro che non è intuitivamente possibile dichiarare un numero specifico come una buona fonte per tali cifre.

Una nota positiva: per un numero irrazionale specifico, sei ovviamente libero di provarlo; vale a dire, calcolare il numero su un grado sufficientemente elevato di cifre ed eseguirlo attraverso tutti i test noti (ci sono strumenti per questo, vedere il link sopra). Se la misura è abbastanza buona per il tuo caso d'uso e se sei consapevole che questo è ovviamente inutile per le applicazioni crittografiche e ottieni sempre gli stessi numeri se dovessi ricominciare da capo e che la qualità potrebbe peggiorare se superi la nscelta per testare la casualità, potresti usare quei numeri. Ma sarà molto meglio usare un generatore di numeri casuali dedicato (pseudo-); e niente batte una buona fonte fisica di casualità.


4
πe

3
La risposta di Ayrat si collega ad altri siti in cui i matematici hanno effettuato questi test. Credono, ma non hanno dimostrato, che π soddisfa i test statistici.
Barmar il

Sì, questo è ciò che intendevo con il mio ultimo paragrafo: vale la pena provarlo empiricamente; ma rigorosamente non è stato provato (o non si può semplicemente supporre che sia vero) per arbitrarie irrazionali "dall'aspetto complicato". @DavidRicherby, @
Barmar

1

Fornisce un buon numero casuale fino a quando non ti rendi conto di come è stato prodotto, come con molti numeri pseudo casuali. I numeri irrazionali (non algebrici e non trascendentali) che hai scelto sono comuni e quindi più facili da indovinare di altri. Non riesco a vedere alcun problema con questo metodo purché tu scelga generatori meno comuni.


4
Nessun problema tranne la grave inefficienza, il fatto che stai facendo affidamento su un avversario che non sa quale sia il tuo algoritmo, il fatto che una cattiva scelta del generatore potrebbe portare a una sequenza molto scarsa, ...
David Richerby,

4
2πe

Un numero trascendentale è un numero reale che non è algebrico. Non è possibile che un numero reale sia non algebrico e non trascendentale.
Brady Gilg,
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.