Talk About Network

Google





Programming > C - C++ Learning > Re: generate ra...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 2 of 4 Topic 4128 of 4400
Post > Topic >>

Re: generate random double between 0 and 1

by Krzysztof Mitko <kmitko@[EMAIL PROTECTED] > Apr 27, 2008 at 08:37 PM

carvalho.miguel@[EMAIL PROTECTED]
 twierdzi, że:
> im trying to generate a double precision random number between 0 and
> 1, but i keep getting 0 only.

> static double randomDouble()
> {
> return static_cast<double>(rand() / RAND_MAX);
> }

RAND_MAX is an integer

rand() returns an integer

(rand() / RAND_MAX) is a division of integer by integer, suprisingly
giving the integer :). Further cast doesn't matter, since you can only
get 0 or 1 (if rand() results in RAND_MAX value). 
One of them should be a double. My manual says that the proper formula
is:

return rand() / (RAND_MAX + 1.0);

-- 
If an experiment works, something has gone wrong.
 




 4 Posts in Topic:
generate random double between 0 and 1
carvalho.miguel@[EMAIL PR  2008-04-27 13:15:36 
Re: generate random double between 0 and 1
Krzysztof Mitko <kmitk  2008-04-27 20:37:09 
Re: generate random double between 0 and 1
carvalho.miguel@[EMAIL PR  2008-04-27 13:40:41 
Re: generate random double between 0 and 1
"Jim Langston"   2008-04-28 10:24:19 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
localhost-V2008-12-19 Wed Jan 7 13:15:24 PST 2009.