T
- Type of items in the collection.SharedStateSampler<DiscreteProbabilityCollectionSampler<T>>
public class DiscreteProbabilityCollectionSampler<T> extends java.lang.Object implements SharedStateSampler<DiscreteProbabilityCollectionSampler<T>>
CollectionSampler
.
Sampling uses UniformRandomProvider.nextDouble()
.
Constructor | Description |
---|---|
DiscreteProbabilityCollectionSampler(org.apache.commons.rng.UniformRandomProvider rng,
java.util.List<T> collection,
double[] probabilities) |
Creates a sampler.
|
DiscreteProbabilityCollectionSampler(org.apache.commons.rng.UniformRandomProvider rng,
java.util.Map<T,java.lang.Double> collection) |
Creates a sampler.
|
Modifier and Type | Method | Description |
---|---|---|
T |
sample() |
Picks one of the items from the collection passed to the constructor.
|
DiscreteProbabilityCollectionSampler<T> |
withUniformRandomProvider(org.apache.commons.rng.UniformRandomProvider rng) |
Create a new instance of the sampler with the same underlying state using the given
uniform random provider as the source of randomness.
|
public DiscreteProbabilityCollectionSampler(org.apache.commons.rng.UniformRandomProvider rng, java.util.Map<T,java.lang.Double> collection)
rng
- Generator of uniformly distributed random numbers.collection
- Collection to be sampled, with the probabilities
associated to each of its items.
A (shallow) copy of the items will be stored in the created instance.
The probabilities must be non-negative, but zero values are allowed
and their sum does not have to equal one (input will be normalized
to make the probabilities sum to one).java.lang.IllegalArgumentException
- if collection
is empty, a
probability is negative, infinite or NaN
, or the sum of all
probabilities is not strictly positive.public DiscreteProbabilityCollectionSampler(org.apache.commons.rng.UniformRandomProvider rng, java.util.List<T> collection, double[] probabilities)
rng
- Generator of uniformly distributed random numbers.collection
- Collection to be sampled.
A (shallow) copy of the items will be stored in the created instance.probabilities
- Probability associated to each item of the
collection
.
The probabilities must be non-negative, but zero values are allowed
and their sum does not have to equal one (input will be normalized
to make the probabilities sum to one).java.lang.IllegalArgumentException
- if collection
is empty or
a probability is negative, infinite or NaN
, or if the number
of items in the collection
is not equal to the number of
provided probabilities
.public T sample()
public DiscreteProbabilityCollectionSampler<T> withUniformRandomProvider(org.apache.commons.rng.UniformRandomProvider rng)
withUniformRandomProvider
in interface SharedStateSampler<T>
rng
- Generator of uniformly distributed random numbers.Copyright © 2016–2019 The Apache Software Foundation. All rights reserved.