【Ruby】指定の範囲の中からランダムで数値を取得する方法

a~bの間からランダムで数値を取得する方法

Rubyにおいて、aからbまでの特定の範囲からランダムで数値を取得する場合、次のようにすることで可能になります。

[*a..b].sample

例えば、1から99の間でランダムな数を取得したい場合は以下のようにします。

[*1..99].sample

もちろん数値の部分を変数にしても大丈夫です。

start_num = 1
end_num = 99

[*start_num..end_num].sample

コードの解説

まず以下のように書くことで、a~bまでの数値を全て含んだ配列を作ります。

[*a..b]

####(例)####
[*10..15] #=> [10, 11, 12, 13, 14, 15]

その後、sampleメソッドを使用して配列の中の要素からランダムで値を取り出します。

配列.sample

####(例)####
[*10..15].sample #=> [10, 11, 12, 13, 14, 15]の中からランダムで値を取り出す

タイトルとURLをコピーしました