Project

General

Profile

Feature #4247

Updated by mame (Yusuke Endoh) over 12 years ago

=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 
 

Back