鲁比(人名)随机数生成器



我是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数组将为空。

最新更新