From: Shyouhei Urabe Date: 2011-12-01T10:51:46+09:00 Subject: [ruby-dev:44912] [ruby-trunk - Feature #4147] Array#sample で重みを指定したい Issue #4147 has been updated by Shyouhei Urabe. まだなんも手をつけてません。卜部にアサインされているのが適切ではないという気もします。 そのうちなんとかしようとは思っていますが、お急ぎでしたらまきとっていただいたほうがよいです。 ---------------------------------------- Feature #4147: Array#sample で重みを指定したい http://redmine.ruby-lang.org/issues/4147 Author: Yoji Ojima Status: Assigned Priority: Normal Assignee: Shyouhei Urabe Category: Target version: 2.0.0 =begin Array#sample にブロックを渡したとき、ブロックの戻り値を要素の重みとして使用するのはいかがでしょうか。 下記のサンプルで、"大吉" が "凶" の 1000 倍の確率で選択されるようにしたいです。 omikuji_box = [ {:name => "大吉", :weight => 1000}, {:name => "中吉", :weight => 100}, {:name => "小吉", :weight => 10}, {:name => "凶", :weight => 1} ] omikuji = omikuji_box.sample {|v| v[:weight] } puts omikuji[:name] =end -- http://redmine.ruby-lang.org