views:

110

answers:

2

Possible Duplicate:
How to get a random number in Ruby?

I am just curios but does Ruby have a class for specifically generating random numbers like Java's java.util.Random class, or is the rand method all Ruby has?

+2  A: 

There is a rand method in Kernel :)

API Docs

rand(max=0) => number
Converts max to an integer using max1 = max.to_i.abs. If the result is zero, returns a pseudorandom floating point number greater than or equal to 0.0 and less than 1.0. Otherwise, returns a pseudorandom integer greater than or equal to zero and less than max1. Kernel::srand may be used to ensure repeatable sequences of random numbers between different runs of the program. Ruby currently uses a modified Mersenne Twister with a period of 2**19937-1.

   srand 1234                 #=> 0
   [ rand,  rand ]            #=> [0.191519450163469, 0.49766366626136]
   [ rand(10), rand(1000) ]   #=> [6, 817]
   srand 1234                 #=> 1234
   [ rand,  rand ]            #=> [0.191519450163469, 0.49766366626136]
willcodejavaforfood
+1  A: 

There is a "Random" Class

see the question at http://stackoverflow.com/questions/198460/how-to-get-a-random-number-in-ruby

10.times.map{ Random.new.rand(20..30) } 
#=> [26, 26, 22, 20, 30, 26, 23, 23, 25, 22]
Dara