Feature #3649

Array#sample, Array#shuffle, Array#shuffle! で使用する乱数生成器を指定するためにオプショナル引数を追加する

Added by Kenta Murata about 5 years ago. Updated over 4 years ago.

[ruby-dev:41923]
Status:Closed
Priority:Normal
Assignee:-

Description

=begin
Array#sample, Array#shuffle, Array#shuffle! の3メソッドは配列の要素に対して乱数を適用させるメソッドです。
これらのメソッドが使用する乱数生成器は Ruby インタプリタがデフォルトで持っているものに固定されており、変更することができません。

そこで、以下のように乱数生成器を指定できるよう、これらのメソッドに対してオプショナル引数を導入することを提案します。

gen = Random.new
[1..6].sample(3, random: gen)
[*1..6].shuffle(random: gen)
[
1..6].shuffle!(random: gen)

追加する patch は、中田さんが作成した Array#sample への変更に対して、
私が Array#shuffle と Array#shuffle! への変更を追加したものになっています。
=end

array_sample_shuffle_random.patch Magnifier (8.16 KB) Kenta Murata, 08/03/2010 08:29 PM


Related issues

Related to Ruby trunk - Feature #3647: Array#sample(n, replace=false) Feedback 08/03/2010

History

#1 Updated by Nobuyoshi Nakada about 5 years ago

  • Status changed from Open to Closed
  • % Done changed from 0 to 100

=begin
This issue was solved with changeset r29083.
Kenta, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.

=end

Also available in: Atom PDF