Project

General

Profile

Actions

Feature #4247

closed

New features for Array#sample, Array#choice

Added by oj (Yoji Ojima) over 13 years ago. Updated about 1 month ago.

Status:
Rejected
Assignee:
-
Target version:
-
[ruby-core:34214]

Description

=begin
We are planning to add the following features of the random sampling to Array.

  1. Weighted random sampling.
  2. Sampling with replacement.
  3. Iteration.

It is discussed in ruby-dev (Feature #3647 and #4147).

API will be:

Array#sample([size, [opt]])

  • Random selection without replacement.
  • Returns a new array when size is specified.
  • opt:
    weight: proc or array
    random: Random instance

Array#choice([size, [opt]])

  • Random selection with replacement.
  • Returns a new array when size is specified.
  • opt: same as above.

Array#each_sample([opt])

  • Random selection iterator without replacement.
  • Choose a random element and yield it.
  • Returns an Enumerator if a block is not given.
  • opt: same as above.

Array#each_choice([opt])

  • Random selection iterator with replacement.
  • Choose a random element and yield it.
  • Returns an Enumerator if a block is not given.
  • opt: same as above.

Comments?
=end


Related issues 2 (0 open2 closed)

Related to Ruby master - Feature #3647: Array#sample(n, replace=false)Feedbackmrkn (Kenta Murata)Actions
Related to Ruby master - Feature #4147: Array#sample で重みを指定したいFeedbackActions
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0