我是Ruby的新手。我只是想知道是否有办法以下列方式创建随机数:
1)生成45个随机数。
2)生成的随机数最多只能重复5次
我尝试使用以下方法。
45.times do |x|
puts x.rand(1..9)
end
如何实现数字的最大出现次数为5?
答案 0 :(得分:2)
我会做这样的事情:
Array.new(5) { (1..9).to_a }.flatten.shuffle
这将生成一个数组,其中所有数字形式1到9恰好存在5次并随机地对该数组进行洗牌。
根据您的需要,您可以按原样使用此数组,也可以使用pop
下一个随机数:
numbers = Array.new(5) { (1..9).to_a }.flatten.shuffle
3.times do
puts numbers.pop
end
使用pop
返回一个数字并将其从数组中删除。这意味着在45个圆圈后,numbers
数组将为空。