如何从0到100范围内得到5个随机数?

时间:2014-08-22 06:36:33

标签: ruby random range

我想生成5个不同的随机数。我已经生成了从0到100的范围。我想从该范围中随机选择5个数字。

3 个答案:

答案 0 :(得分:5)

您可以在Ruby中生成n个唯一随机数的列表,如下所示:

(1..99).to_a.sample(5)
=>[69, 50, 15, 68, 29]

答案 1 :(得分:1)

a = []
while true
   a << rand(101) # if you want to get 100
   break if a.uniq.count == 5
end

它可以得到5个不同的随机数。

答案 2 :(得分:-1)

你也可以尝试这样的事情:

arr = []
(1..5).each{|t| arr << rand(100)}
arr
#=> [78, 19, 34, 96, 59]

此数组可能包含@ p11y在评论中指出的重复元素。

这是对此的修复(受他的评论启发):

a = 5.times.map { rand(100) }
until a.uniq.size==5 do
 a += (5-a.uniq.size).times.map{rand (100)}
end 
a.uniq!

我认为此处已经发布了更好的解决方案,这只是一个替代答案。