Ruby 乱数を生成する

Ruby 乱数を生成する

Rubyで、乱数を生成するソースコードを記述してます。「rand」メソッドで生成したい範囲を指定することで可能です。Randomクラスを使用しても同様のことが可能で、こちらの方がパフォーマンスは良いようです。

環境

  • OS windows11 home
  • ruby 3.1.3p185

乱数を生成

乱数を生成するには、 「rand」に生成したい範囲の値を指定します。

rand(数値)

rand(数値..数値)

※数値を1つだけ指定した場合は「0~数値」までの乱数が生成されます。

実際に「0~10」の範囲で乱数を5回取得してみます。

5.times do
    p rand(10)
end

実行結果

以下のように範囲を指定して生成することも可能です。

5.times do
    p rand(10..15)
end

実行結果

引数なし

引数を指定しない場合は、浮動小数点数が返ります。

5.times do
    p rand
end

実行結果

マイナスを指定

マイナスだけを指定すると、絶対値として扱われます。

5.times do
    p rand(-10)
end

実行結果

範囲を指定するとマイナスの乱数も生成することができます。

5.times do
    p rand(-10..-1)
end

実行結果

小数を指定

小数を指定することも可能です。

5.times do
    p Random.rand(1.5)
end

実行結果

srand

乱数の種のようなものを指定すると、何度実行しても同じ結果が返ります。

srand(5)

5.times do
    p Random.rand(10)
end

実行結果

Randomクラス

Randomクラスを使用しても、同じことが可能です。こちらの方が高速に処理できるようです。

p Random.rand(10)

p Random.rand(-1..1)

p Random.rand(-1.5..1.5)

random = Random.new(5)
p random.rand(10)