如何生成介于0和n之间的随机数?


当前回答

尝试array#shuffle方法进行随机化

array = (1..10).to_a
array.shuffle.first

其他回答

在ruby中获取随机数的简单方法是,

def random    
  (1..10).to_a.sample.to_s
end

可以使用rand方法生成随机数。传递给rand方法的参数应为整数或范围,并返回范围内的相应随机数:

rand(9)       # this generates a number between 0 to 8
rand(0 .. 9)  # this generates a number between 0 to 9
rand(1 .. 50) # this generates a number between 1 to 50
#rand(m .. n) # m is the start of the number range, n is the end of number range

这个怎么样?

num = Random.new
num.rand(1..n)
rand(6)    #=> gives a random number between 0 and 6 inclusively 
rand(1..6) #=> gives a random number between 1 and 6 inclusively

请注意,范围选项仅在更新(我相信是1.9+)的ruby版本中可用。

您可以简单地使用random_number。

如果给定正整数为n,random_number返回一个整数:0<=random_nnumber<n。

这样使用:

any_number = SecureRandom.random_number(100) 

输出将是0到100之间的任何数字。