Class PermutationSampler

    • Field Detail

      • domain

        private final int[] domain
        Domain of the permutation.
      • size

        private final int size
        Size of the permutation.
    • Constructor Detail

      • PermutationSampler

        public PermutationSampler​(UniformRandomProvider rng,
                                  int n,
                                  int k)
        Creates a generator of permutations.

        The sample() method will generate an integer array of length k whose entries are selected randomly, without repetition, from the integers 0, 1, ..., n-1 (inclusive). The returned array represents a permutation of n taken k.

        Parameters:
        rng - Generator of uniformly distributed random numbers.
        n - Domain of the permutation.
        k - Size of the permutation.
        Throws:
        java.lang.IllegalArgumentException - if n <= 0 or k <= 0 or k > n.
      • PermutationSampler

        private PermutationSampler​(UniformRandomProvider rng,
                                   PermutationSampler source)
        Parameters:
        rng - Generator of uniformly distributed random numbers.
        source - Source to copy.
    • Method Detail

      • shuffle

        public static void shuffle​(UniformRandomProvider rng,
                                   int[] list,
                                   int start,
                                   boolean towardHead)
        Shuffles the entries of the given array, using the Fisher-Yates algorithm. The start and towardHead parameters select which part of the array is randomized and which is left untouched.

        Sampling uses UniformRandomProvider.nextInt(int).

        Parameters:
        rng - Random number generator.
        list - Array whose entries will be shuffled (in-place).
        start - Index at which shuffling begins.
        towardHead - Shuffling is performed for index positions between start and either the end (if false) or the beginning (if true) of the array.
      • natural

        public static int[] natural​(int n)
        Creates an array representing the natural number n.
        Parameters:
        n - Natural number.
        Returns:
        an array whose entries are the numbers 0, 1, ..., n-1. If n == 0, the returned array is empty.