2013-11-26 31 views
1

我正在做一个小型的彩票红宝石程序。绘制随机数字方法

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

彩票有一个序列号和一个lotterynumber。

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

lottery = (1..99999).to_a.sample 5 
serial = (1..180).to_a.sample 5 

问题是这些需要5个不同的序列号和彩票号码。我希望它能够选择与其他一些号码相同的号码,但它不应该能够选择序列号和彩票号码。

例如:

Draws: 
97449 053 
97449 055 
33559 053 

我怎样才能使一个方法确保其将能够选择相同的序列号或彩票号码?但它不能选择相同的序列号和开奖号码

+0

你想要5个彩票号码和一个不同于彩票号码的序列号,对不对? – Stefan

+0

nope 1票有一个彩票号码和一个序列号。 我会画出5张票号。 它不能画出相同的彩票和序列号 ,但它可以绘制相同的彩票号码,但是序列号必须不同 它也可以绘制相同的序列号,但是那么彩票号码必须不同 – user3033493

回答

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

这会生成一个票据,并且只会将其添加到票据列表中(如果它尚不存在)。

2

也许是这样的:

(0..18099999).to_a.sample(5).map{|n| [n%100000,n/100000]}