[ruby-dev:49885] [Ruby trunk Feature#4147][Feedback] Array#sample で重みを指定したい

From: hsbt@...
Date: 2016-11-21 04:59:19 UTC
List: ruby-dev #49885
Issue #4147 has been updated by Hiroshi SHIBATA.

Status changed from Assigned to Feedback

----------------------------------------
Feature #4147: Array#sample で重みを指定したい
https://bugs.ruby-lang.org/issues/4147#change-61599

* Author: Yoji Ojima
* Status: Feedback
* Priority: Normal
* Assignee: 
----------------------------------------
=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/

In This Thread

Prev Next