1. ホーム
  2. ruby

[解決済み】Rubyでaとbの間の乱数を生成する方法は?

2022-04-12 03:52:12

質問

3から10の間の乱数を生成するために、例えば、次のようにします。 rand(8) + 3

もっと素敵な方法はないでしょうか(例えば rand(3, 10) ) ?

解決方法は?

UPDATE: Ruby 1.9.3 Kernel#rand も範囲指定が可能です。

rand(a..b)

http://www.rubyinside.com/ruby-1-9-3-introduction-and-changes-5428.html

配列に変換するのはコストがかかりすぎるかもしれないし、不要だと思う。


(a..b).to_a.sample

または

[*a..b].sample


配列#sample

Ruby 1.8.7 以降で標準装備。

注:1.8.7では#choiceと名付けられ、それ以降のバージョンで改名されました。

しかし、いずれにせよ、配列の生成にはリソースが必要であり、あなたが既に書いた解決策は、あなたができる最善の方法です。