私は使用securerandom
していますが、問題は、, andの代わりに, and の"0"
ように数字が含まれていることです(宝くじには 0 桁が含まれていません)。0 は、以下の 2 番目のメガ数値出力で確認できます。以下の s を ( , ) で除外する方法を考え出したと思ったのですが、失敗しました。0..56
0..46
1..56
1..46
0
char1
char2
包括的な範囲で使用するrand(1..56)
と、問題なく動作します(ただし、いくつかの投稿では、に近づかないことをお勧めしますrand()
)。char1
ただし、char2
以下で包括的な範囲を使用しようとするとsecurerandom
、機能しません。
エラー: [nil@nil宝くじ]$ ./mega_millions.rb /dev/null/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/securerandom.rb:216:in `<': Fixnum と Array の比較に失敗しました (ArgumentError) from /dev/null/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/securerandom.rb:216:in `random_number' from ./mega_millions.rb:42:in `<main>'
フィードバックと正しい方向への押し込みをいただければ幸いです。
ありがとう!
#!/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