生成随机数的不同组合

时间:2013-11-05 23:16:05

标签: ruby

在尝试使用Ruby进行实验并看看它能做什么时,我将这个程序放在一起以生成虚假的彩票号码。

我正在尝试生成所有可能的组合,但它似乎不起作用,你能看到我出错的地方吗?

lotto = [rand(1...50), rand(1...50), rand(1...50), rand(1...50), rand(1...50),  rand(1...50)].uniq

lotto_results = lotto.combination(6).cycle.to_a

puts "----START----"

count = 0

lotto_results.each do |x|
count += 1
puts "Comination #{count}: #{x}"
   puts "-------------"
  end

puts "----FINISH----"

3 个答案:

答案 0 :(得分:2)

如果您想要打印所有可能的组合,请执行以下操作:

(1..50).to_a.combination(6).each_with_index do |c, idx| 
  puts "combination #{idx}: #{c}"
end

答案 1 :(得分:1)

请改为尝试:

lotto = (1..50).to_a.shuffle[0..5]

<强>附录

正如Marc-AndréLafortune指出的那样,

(1..50).to_a.sample(6)

好多了。

答案 2 :(得分:0)

lotto = (1..50).to_a[0..50].combination(5)

count = 0

lotto.each do |x|
count += 1
puts "Combination #{count}: #{x}"
end