From: Shota Fukumori Date: 2010-12-10T22:47:36+09:00 Subject: [ruby-dev:42740] [Ruby 1.9-Feature#4147] Array#sample で重みを指定したい チケット #4147 が更新されました。 (by Shota Fukumori) ミスがあったので訂正。 # -- テスト def a [1,2,3].sample { |v| v*100 } end def b [1,2,3].sample { |v| v } end ary = 100.times.map{a} bry = 100.times.map{b} result_a = {} ary.each do |i| result_a[i] ||= 0 result_a[i] += 1 end result_b = {} bry.each do |i| result_b[i] ||= 0 result_b[i] += 1 end # aは i*10の重みあり。 bは重みなし。 {i => 出現回数} p result_a #=> {3=>56, 1=>13, 2=>31} p result_b #=> {2=>34, 3=>46, 1=>20} # -- sora_h ---------------------------------------- http://redmine.ruby-lang.org/issues/show/4147 ---------------------------------------- http://redmine.ruby-lang.org