randomSample function
Returns a random sample with probability density
probabilityDensity
.
sampleSize
: sample size,xMin
: lower limit of the sample values,xMax
: upper limit of the sample values,yMax
: maximum value ofpdf
,pdf
: probability density function,seed
: optional random generator seed.
The generator uses a rejection sampling algorithm.
Implementation
List<double> randomSample(
int sampleSize,
num xMin,
num xMax,
num yMax,
ProbabilityDensity pdf, {
int? seed,
}) {
final result = <double>[];
final random = Random(seed);
final range = xMax - xMin;
while (result.length < sampleSize) {
final x = range * random.nextDouble() + xMin;
final y = yMax * random.nextDouble();
if (y < pdf(x)) {
result.add(x);
}
}
return result;
}