From: naruse@... Date: 2014-10-01T11:44:46+00:00 Subject: [ruby-dev:48590] [ruby-trunk - Feature #4147] Array#sample で重みを指定したい Issue #4147 has been updated by Yui NARUSE. Assignee deleted (Shyouhei Urabe) gogo tanaka wrote: > こんにちは. > > 大変昔の話を掘り返すようで恐縮ですが、こちらてパッチを書いたら取り込まれる可能性てございますか? > (もちろんそのパッチ如何によるんでしょうが) > > まずはパッチ書いてからにしろという話なら申し訳ございません、 この件については、結局どのような仕様を入れるのかというのがポイントな気がしますが、 パッチがあった方が話が早い可能性もあるかな、といったところでしょうか。 > 2年前という事で、他の文脈がある事やどなたかが着手されている事を危惧致しました. わたしの知る限りでは進捗ないと思います。 うらべさん、あるいは他のどなたか何かありますか? ---------------------------------------- Feature #4147: Array#sample で重みを指定したい https://bugs.ruby-lang.org/issues/4147#change-49154 * Author: Yoji Ojima * Status: Assigned * Priority: Normal * Assignee: * 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/