From: mail@... Date: 2014-10-01T03:34:52+00:00 Subject: [ruby-dev:48587] [ruby-trunk - Feature #4147] Array#sample で重みを指定したい Issue #4147 has been updated by gogo tanaka. こんにちは. 大変昔の話を掘り返すようで恐縮ですが、こちらてパッチを書いたら取り込まれる可能性てございますか? (もちろんそのパッチ如何によるんでしょうが) まずはパッチ書いてからにしろという話なら申し訳ございません、 2年前という事で、他の文脈がある事やどなたかが着手されている事を危惧致しました. ---------------------------------------- Feature #4147: Array#sample で重みを指定したい https://bugs.ruby-lang.org/issues/4147#change-49147 * Author: Yoji Ojima * Status: Assigned * Priority: Normal * Assignee: Shyouhei Urabe * Category: * Target version: next minor ---------------------------------------- =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 -- https://bugs.ruby-lang.org/