choice static method
Returns a random sample from a given array.
Implementation
static choice(List array, [List<double>? probabilities]) {
final random = math.Random().nextDouble();
if ( probabilities == null ) {
return array[ ( math.Random().nextDouble() * array.length ).floor() ];
}
else {
double probability = 0;
final index = array.map((value){
probability += probabilities[ array.indexOf(value) ];
return probability;
} ).toList().indexWhere((cumulativeProbability) => cumulativeProbability >= random);//.findIndex( ( probability ) => probability >= random );
return array[ index ];
}
}