cern.jet.random.sampling

## Class RandomSamplingAssistant

- java.lang.Object
- - cern.colt.PersistentObject
  - - cern.jet.random.sampling.RandomSamplingAssistant

- All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable

      public class RandomSamplingAssistant
      extends PersistentObject

  Conveniently computes a stable Simple Random Sample Without Replacement (SRSWOR) subsequence of `n` elements from a given input sequence of `N` elements; Example: Computing a sublist of `n=3` random elements from a list `(1,...,50)` may yield the sublist `(7,13,47)`. The subsequence is guaranteed to be stable, i.e. elements never change position relative to each other. Each element from the `N` elements has the same probability to be included in the `n` chosen elements. This class is a convenience adapter for `RandomSampler` using blocks.
  Version:
    1.0, 02/05/99
  See Also:
    `RandomSampler`, Serialized Form

- - ### Field Summary

    - ### Fields inherited from class cern.colt.PersistentObject

      `serialVersionUID`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `RandomSamplingAssistant(long n, long N, RandomEngine randomGenerator)` Constructs a random sampler that samples `n` random elements from an input sequence of `N` elements.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.Object` | `clone()` Returns a deep copy of the receiver.
    `RandomEngine` | `getRandomGenerator()` Returns the used random generator.
    `static void` | `main(java.lang.String[] args)` Tests random sampling.
    `static int[]` | `sampleArray(int n, int[] elements)` Just shows how this class can be used; samples n elements from and int[] array.
    `boolean` | `sampleNextElement()` Returns whether the next element of the input sequence shall be sampled (picked) or not.
    `static void` | `test(long n, long N)` Tests the methods of this class.
    `static void` | `testArraySampling(int n, int N)` Tests the methods of this class.

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### RandomSamplingAssistant

          public RandomSamplingAssistant(long n,
                                 long N,
                                 RandomEngine randomGenerator)

      Constructs a random sampler that samples `n` random elements from an input sequence of `N` elements.
      Parameters:
        `n` - the total number of elements to choose (must be >= 0).
        `N` - number of elements to choose from (must be >= n).
        `randomGenerator` - a random number generator. Set this parameter to `null` to use the default random number generator.

  - ### Method Detail

    - #### clone

          public java.lang.Object clone()

      Returns a deep copy of the receiver.
      Overrides:
        `clone` in class `PersistentObject`
      Returns:
        a copy of the receiver.

    - #### getRandomGenerator

          public RandomEngine getRandomGenerator()

      Returns the used random generator.

    - #### main

          public static void main(java.lang.String[] args)

      Tests random sampling.

    - #### sampleArray

          public static int[] sampleArray(int n,
                          int[] elements)

      Just shows how this class can be used; samples n elements from and int[] array.

    - #### sampleNextElement

          public boolean sampleNextElement()

      Returns whether the next element of the input sequence shall be sampled (picked) or not.
      Returns:
        `true` if the next element shall be sampled (picked), `false` otherwise.

    - #### test

          public static void test(long n,
                  long N)

      Tests the methods of this class. To do benchmarking, comment the lines printing stuff to the console.

    - #### testArraySampling

          public static void testArraySampling(int n,
                               int N)

      Tests the methods of this class. To do benchmarking, comment the lines printing stuff to the console.

Jump to the Colt Homepage