【Ruby】ランダムに実行したい処理の実装方法
こんちは
今回はタイトルの通り、rubyでランダム処理を実装する方法です。
乱数の取得方法
乱数を取得する方法は以下の4通り
- rand(普通のrand)
- Random.rand
- Random#rand
- Array.sample
どの方法でもランダムな値を取得可能だけど、1番のメソッドだけfloatが使えない(というかintとして判定される)
[1] pry(main)> rand 10 # 1~10の中で乱数を取得 => 9 [2] pry(main)> rand 10..15 # 10~15の中で乱数を取得 => 13 [3] pry(main)> Random.rand 10 => 9 [4] pry(main)> Random.rand 10..15 => 12 [5] pry(main)> Random.new.rand 10 => 5 [6] pry(main)> Random.new.rand 10..15 => 11 [7] pry(main)> [*1..10].sample => 9 [8] pry(main)> [*10..15].sample => 15
[1] pry(main)> rand 1.1 => 0 [2] pry(main)> rand 1.2 => 0 [3] pry(main)> rand 1.9 => 0 [4] pry(main)> rand 4.1 => 2 [5] pry(main)> Random.rand 1.1 => 0.193044472967513 [6] pry(main)> Random.new.rand 1.1 => 0.9249129201223988
これらのうち、どれかの方法を使用して分岐を組みます。
例)10分の1の確率で処理を実行する。
if rand(10) + 1 == 1 do_something # 10分の1の確率で実行したい処理 end
最後に
こんな感じで乱数を取得して、一定の確率で行いたい処理を実装できます。