PDA

View Full Version : [C++] Numeri random


Unrue
19-10-2007, 08:47
Ciao ragazzi,
avrei bisogno di generare numeri random in un intervallo da -N ad N. Conoscete una funzione in C++ che fa questo? La rand() me li restituisce tra 0 ed N, perņ a me servono anche negativi. Mettere un meno davanti a rand() mi darebbe il random solo nei valori assoluti ma non nel segno.

Grazie.

tomminno
19-10-2007, 10:20
Ciao ragazzi,
avrei bisogno di generare numeri random in un intervallo da -N ad N. Conoscete una funzione in C++ che fa questo? La rand() me li restituisce tra 0 ed N, perņ a me servono anche negativi. Mettere un meno davanti a rand() mi darebbe il random solo nei valori assoluti ma non nel segno.

Grazie.

non puoi usare rand() tra 0 e 2N e poi sottrarre N al risultato?

Unrue
19-10-2007, 10:32
non puoi usare rand() tra 0 e 2N e poi sottrarre N al risultato?

Toh, chi si rivede :) Buona idea,grazie.

Unrue
19-10-2007, 10:44
Perņ un momento, il mio 2N non č intero,ma float. rand() lavora con interi

tomminno
19-10-2007, 10:53
Perņ un momento, il mio 2N non č intero,ma float. rand() lavora con interi

se fai (double)rand()/((double)RAND_MAX+1) ottieni un numero float [0,1)

A parte il fatto che rand non č un buon generatore di numeri casuali...

Unrue
19-10-2007, 11:30
se fai (double)rand()/((double)RAND_MAX+1) ottieni un numero float [0,1)

A parte il fatto che rand non č un buon generatore di numeri casuali...

QUindi nel mio caso devo fare :

((double)rand()/((double)RAND_MAX+1) )*(2N) - (N) ?

Dove N č il mio range massimo di valori. In tal modo dovrei ottenere finalmente un valore casuale tra -N ed N?

Ziosilvio
19-10-2007, 12:00
http://www.hwupgrade.it/forum/showthread.php?t=1196677 e ingegnarsi un pochettino...

Unrue
19-10-2007, 17:25
Non conoscevo questo thread, e comunque bastava dirmi se la formula che ho postato sopra andava bene o no ;)