Newsgroup: it.comp.lang.c++
Titolo: random

probabilmente questo argomento sarą gią stato affrontatp migliaia di volte
ma una veloce ricerca su questo ng non mi ha ritornato risultati, quindi io
ci provo... al massimo mandatemi a stendere...
cmq, per generare dei numeri random a parte alla funzione rand() avevo visto
drand48(), ma per qualche motivo non ben precisato il compilatore mi da
errore dicendo che non trova la funzione...
sul manualino di dev-cpp sta scritto che serve solo <math.h> per drand48. č
vero o devo includere qualcos'altro? in alternativa esistono altre buone (e
*veloci*) funzioni random che generino double? vi ringrazio sin d'ora,
CAFxX.

 wrote:

Per avere sempre numeri diversi, devi inizializzare un seme, altrimenti,
la sequenza di numeri random e assegnata in fase di compilazione:
Io di solito includo la time.h, cosi da poter avere sempre un seme di
inizializzazione sempre diverso:
E son srand lo setti prendendo come inizializzatore proprio il tempo di
sistema:
srand((unsigned)time(0));
Poi puoi usare rand() normalmente, ma a ogni esecuzione avrai numeri
diversi.
Whamoo
---------------
www.rknet.it

 wrote
hai detto cose banali e scontate ma non hai risposto alle sue domande...
Io posso solo dire che il ne il C89 ne il C99 e nemmeno il C++98  prevedono
tale funzione.
Tommy

 wrote:

Scusate se esisto....
Cmq,  se il suo problema erano numeri random, mi pare di aver risposto,
io suo quello che ho scritto e non ho mai avuto problemi.....
Whamoo

 CAFxX.
Che io sappia la migliore (scientificamente parlando, la usavo per
generare rumore bianco....) è r250:
http://www.taygeta.com/random.xml
Non ricordo se genera double ma mi sembra di si!
Felix

 ha scritto nel messaggio
news:79c19ed0.04021...@posting.google.com...


 wrote:
C> cmq, per generare dei numeri random a parte alla funzione rand() avevo visto
C> drand48(), ma per qualche motivo non ben precisato il compilatore mi da
C> errore dicendo che non trova la funzione...
hai linkato con le librerie matematiche?
C> sul manualino di dev-cpp sta scritto che serve solo <math.h> per drand48. è
C> vero o devo includere qualcos'altro? in alternativa esistono altre buone (e
C> *veloci*) funzioni random che generino double? vi ringrazio sin d'ora,
probabile, ma per fare funzionare le librerie matematiche con il gcc (il
compilatore usato) e` necessario linkarle esplicitamente
g++ -o file file.c fileoggetto.o -lm
nn so come puoi aggiungere la flag dall'ide.
-- 
#!/usr/bin/rik0
for whom the bell trolls?

 wrote:
w> Scusate se esisto....
dai, non te la prendere ;)
w> Cmq,  se il suo problema erano numeri random, mi pare di aver risposto,
w> io suo quello che ho scritto e non ho mai avuto problemi.....
lui voleva numeri random double.
e che io sappia effettivamente nella lib standard non c'e` una funzione
simile (ma non ho mai approfondito), quindi potrei benissimo sbagliare
(anzi, lo trovo abbastanza probabile).


Enrico Franchi wrote:

leggi la classe random che descrive stoustroup sul suo libro verso la 
fine ... ha gia' tutti i metodi basati sul random della libreria standard.
ciao

 (e *veloci*)
Dai un occhio al MersenneTwister... ha ottime proprietà statistiche 
dimostrate, un seme di 624 byte, ed è in media 2-4 volte più veloce di 
rand()!!!
http://www.math.keio.ac.jp/~matumoto/emt.html
Poi dipende dallo scopo del tuo programma: se questi valori casuali ti 
servono per una simulazione, MT va benissimo, ma se ti servono per 
generare chiavi o cose così allora perfino MT è troppo "debole" e DEVI 
usare un generatore "adatto a scopi crittografici".
(in caso chiedi, ho i link necessari)
Nota: sapete tutti che a prescindere dal seme la rand() di sistema "fa 
schifo" nel senso che produce sempre e comunque dei dati che chiamarli 
"casuali" è una parola veramente grossa?
-- 
L a p o   L u c h i n i
l a p o @ l a p o . i t
w w w . l a p o . i t /
http://www.megatokyo.it

 Felix
La r250 ha un periodo di 2^249. Mersenne-Twister ha periodo 2^19937-1.
Per capirci: č migliore 'scientificamente parlando' ;)
Mersenne-Twister č anche piuttosto veloce, non saprei dire come la
r250 si rapporti.
regards,
ozn