我是Ruby新手。我只是想知道是否有一种方法可以以以下方式创建随机数:
1)生成45个随机数
2)随机数最多只能重复5次
我试着用下面的方法。
45.times do |x|
puts x.rand(1..9)
end
如何实现一个数字的最大出现次数为5?
我会这样做:
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
数组将为空。