View Full Version : [C++] numeri random- ripetizioni seguenze
Albitexm
12-07-2009, 02:22
Ho letto che per generare numeri random, il C++ come gran parte dei linguaggi, utilizza come base il clock del sistema. Quindi in realtà sono casuali fino a un certo punto. Nel senso che è probabile la ripetizione di seguenze di numeri uguali. Quale può essere la percentuale di seguenze di numeri uguali, in un'insieme di numeri casuali?
In pratica io devo generare seguenze random di 10 numeri. Su un milione di queste seguenze, quante saranno le serie identiche? Quale percentuale si può ipotizzare?
in C++ che io sappia l'unico PRG (Pseudo-Random Generator) disponibile é lo stesso del C ed é la funzione rand(); la funzione rand() non usa il clock, usa un seed che viene specificato dal programmatore tramite la funzione srand() e che solitamente é il "clock" (per l'esattezza in genere si usa il valore ritornato dalla funzione time()).
premesso che ad ogni seed corrisponde una e una sola sequenza generata (identica tutte le volte, per cambiarla devi per forza cambiare seed), quale sia la probabilitá che 10 numeri si ripetano tali e quali nel corso di una sequenza generata con un certo seed non lo so ma credo che lo standard non imponga limiti per questo e che dipenda quindi dalla particolare implementazione del PRG; in altre parole varia da un compilatore all'altro o da un sistema operativo all'altro.
PS: si scrive sequenze :mc:
00pipp01
14-07-2009, 21:01
Su un milione di queste seguenze, quante saranno le serie identiche? Quale percentuale si può ipotizzare?
Mah, cosí ad occhio direi uno 0,04158%... Poi bisogna anche calcolare l'influenza dello base_store sulla riproduzione, ma qui sprofondiamo nel calcolo bileritorio..
Albitexm
17-07-2009, 20:12
Mah, cosí ad occhio direi uno 0,04158%... Poi bisogna anche calcolare l'influenza dello base_store sulla riproduzione, ma qui sprofondiamo nel calcolo bileritorio..
Bene, a me interessa che la percentuale non superi il 5%. Se siamo a questi bassi livelli il mio programma servirà a qualcosa.
Bene, a me interessa che la percentuale non superi il 5%. Se siamo a questi bassi livelli il mio programma servirà a qualcosa. Gesu :cry:
leggi meglio, ti sta prendendo per i fondelli...
due sequenze generate dallo stesso PRG con lo stesso seed saranno sempre uguali.
Ziosilvio
18-07-2009, 09:39
Da' un'occhiata anche qui:
http://www.hwupgrade.it/forum/showthread.php?t=1196677
Albitexm
18-07-2009, 19:09
Da' un'occhiata anche qui:
http://www.hwupgrade.it/forum/showthread.php?t=1196677
Grazie per il link, effetivamente esso contiene le risposte ai miei dubbi.
Leggo all'inizio del post la seguente frase:
"D'altra parte, l'uso tipico delle sequenze pseudorandom è nella simulazione di fenomeni la cui descrizione richiederebbe un impiego eccessivo di risorse: non è quindi importante che le sequenza generate dal computer siano casuali, ma che lo sembrino."
Questo è esattamente quello che ho pensato quando ho deciso di usare una
generazione random per risolvere il mio problema.
Siccome devo fare statistica su variabili che possono assumere 28 alla 10 combinazioni. Un numero troppo grande per essere manipolato nella sua completezza.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.