ruby リファレンスマニュアル FAQ 読む - たばさの - Rubyist
を見て、やってみた。
結果
def getNoneRepeatNumbers(qt,max_num) (1..qt).inject([]) do |a, i| rand_num = rand(max_num + 1) while a.include?(rand_num) rand_num = rand(max_num + 1) end a << rand_num end end p getNoneRepeatNumbers(5,51)
とりあえず
0から51の中から5つをランダムに
というのは簡単に書けた。
(1..5).inject([]) {|a, i| a << rand(52)}
でも
重複のない
というすっきりした書き方が思いつかない。
再帰を使えばよさそうな気がするが結局whileで書いてしまった。