Is there any difference between calling rand() and rand(0.1)?
7stud – wrote:
Is there any difference between calling rand() and rand(0.1)?
takes a look at the rdoc -
http://www.ruby-doc.org/core/classes/Kernel.html#M005955
its defined as “rand(max=0)”
ie. calling rand() is exactly the same as rand(0)
also it “Converts max to an integer using max1 = max.to_i.abs”
ie. max = 0.1 → max1 = 0.1.to_i.abs = 0
ie. rand() results in the same behaviour as rand(0.1)
On Sep 15, 2007, at 3:54 PM, 7stud – wrote:
That was my analysis too, however pickaxe2 has some code on p. 138
that
calls rand(0.1).
You’ve found a bug in the Pickaxe book. I’m guessing but I suspect that
sleep(rand(0.1))
should be
sleep(0.1 * rand)
That is, I think the idea was to sleep in the range 0.0 to 0.1
seconds, not 0.0 to 1.0 seconds.
Regards, Morton
7stud – wrote:
Is there any difference between calling rand() and rand(0.1)?
------------------------------------------------------------ Kernel#rand
rand(max=0) => number
Converts _max_ to an integer using max1 = max+.to_i.abs+. [...]
No.
On Sat, Sep 15, 2007 at 09:09:52PM +0900, Yukihiro M. wrote:
|implementation.
It uses Mersenne Twister algorithm which has a period of 2**19937-1.
Excellent! Thank you for the quick and informative response.
On Sat, Sep 15, 2007 at 08:11:25PM +0900, Florian F. wrote:
7stud – wrote:
Is there any difference between calling rand() and rand(0.1)?
------------------------------------------------------------ Kernel#rand
rand(max=0) => numberConverts _max_ to an integer using max1 = max+.to_i.abs+. [...]
No.
Speaking of which . . . obviously rand() doesn’t produce a truly random
number, but it’s reasonably close for some purposes. I’m curious about
just how far off it is, though – because I’m curious about how
appropriate it is to use to simulate dice-rolling for gaming software
(in
the “roleplaying game” sense of the term “gaming”) in Ruby’s
implementation. I’d prefer some kind of a general feel for it before I
write software to statistically analyze the output of millions of
iterations of rand() evaluations.
Matthew R. wrote:
7stud – wrote:
Is there any difference between calling rand() and rand(0.1)?
takes a look at the rdoc -
module Kernel - RDoc Documentationits defined as “rand(max=0)”
ie. calling rand() is exactly the same as rand(0)also it “Converts max to an integer using max1 = max.to_i.abs”
ie. max = 0.1 → max1 = 0.1.to_i.abs = 0
ie. rand() results in the same behaviour as rand(0.1)
That was my analysis too, however pickaxe2 has some code on p. 138 that
calls rand(0.1).
Hi,
In message “Re: rand() v. rand(0.1) ?”
on Sat, 15 Sep 2007 20:35:37 +0900, Chad P.
[email protected] writes:
|Speaking of which . . . obviously rand() doesn’t produce a truly random
|number, but it’s reasonably close for some purposes. I’m curious about
|just how far off it is, though – because I’m curious about how
|appropriate it is to use to simulate dice-rolling for gaming software (in
|the “roleplaying game” sense of the term “gaming”) in Ruby’s
|implementation.
It uses Mersenne Twister algorithm which has a period of 2**19937-1.
matz.