【发布时间】:2013-04-25 03:44:13
【问题描述】:
我使用securerandom,问题是它包含数字"0",如0..56,和0..46而不是1..56和1..46(彩票不包括0 位)。 0 可以在下面的第二个兆数输出中看到。我以为我找到了一种方法来排除下面的0s(char1,char2),但我失败了。
当我使用包含范围的rand(1..56) 时,它工作得很好(但有几篇帖子建议远离rand())。但是,当我尝试在securerandom 上使用包含char1 和char2 的包含范围时,它不起作用。
我将不胜感激任何反馈并推动正确的方向。
谢谢!
#!/usr/bin/env ruby
require 'rainbow.rb'
require 'securerandom'
quick_pick = 56
char1 = ('1'..'56').to_a
mega_num = 46
char2 = ('1'..'46').to_a
first = SecureRandom.random_number(quick_pick)
second = SecureRandom.random_number(quick_pick)
third = SecureRandom.random_number(quick_pick)
fourth = SecureRandom.random_number(quick_pick)
fifth = SecureRandom.random_number(quick_pick)
mega = SecureRandom.random_number(mega_num)
puts "#{first}, #{second}, #{third}, #{fourth}, #{fifth}, #{mega}"
[nil@nil lottery]$ ./mega_millions.rb
34, 38, 17, 24, 55, 14
[nil@nil lottery]$ ./mega_millions.rb
30, 26, 7, 4, 32, 0
【问题讨论】: