绘制随机数方法

时间:2013-11-26 08:50:08

标签: ruby

我正在做一个小型彩票红宝石计划。

我有一个如何获得一定数量的随机数的问题。

彩票有序列号和彩票号。

我使用此代码挑选5个数字。

lottery = (1..99999).to_a.sample 5
serial = (1..180).to_a.sample 5
问题是这些需要5个不同的序列和彩票号码。我希望它能够选择与其他一些相同的号码,它应该不能同时选择序列号和彩票号。

示例:

Draws:
97449 053
97449 055
33559 053

我如何制作一种方法,确保它能够选择相同的序列号或彩票号码?但它不能选择相同的序列号和彩票号

2 个答案:

答案 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]]

这会生成一个故障单,只有当它不存在时才会将其添加到故障单列表中。