我正在做一个小型彩票红宝石计划。
我有一个如何获得一定数量的随机数的问题。
彩票有序列号和彩票号。
我使用此代码挑选5个数字。
lottery = (1..99999).to_a.sample 5
serial = (1..180).to_a.sample 5
问题是这些需要5个不同的序列和彩票号码。我希望它能够选择与其他一些相同的号码,它应该不能同时选择序列号和彩票号。
示例:
Draws:
97449 053
97449 055
33559 053
我如何制作一种方法,确保它能够选择相同的序列号或彩票号码?但它不能选择相同的序列号和彩票号
答案 0 :(得分:2)
也许是这样的:
(0..18099999).to_a.sample(5).map{|n| [n%100000,n/100000]}
答案 1 :(得分:0)
这段代码怎么样?
tickets = []
while tickets.length < 5
this_ticket = [rand(99999)+1, rand(180)+1]
tickets << this_ticket unless tickets.include? this_ticket
end
p tickets
=> [[80947, 67], [61828, 72], [88452, 103], [24607, 84], [18141, 40]]
这会生成一个故障单,只有当它不存在时才会将其添加到故障单列表中。