1

在尝试使用 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----"
4

3 回答 3

2

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

(1..50).to_a.combination(6).each_with_index do |c, idx| 
  puts "combination #{idx}: #{c}"
end
于 2013-11-05T23:41:34.693 回答
1

试试这个:

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

附录

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

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

好多了。

于 2013-11-05T23:22:52.593 回答
0
lotto = (1..50).to_a[0..50].combination(5)

count = 0

lotto.each do |x|
count += 1
puts "Combination #{count}: #{x}"
end
于 2013-11-05T23:45:08.077 回答