我想生成5个不同的随机数。我已经生成了从0到100的范围。我想从该范围中随机选择5个数字。
答案 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!
我认为此处已经发布了更好的解决方案,这只是一个替代答案。