triangular method

double triangular(
  1. double min,
  2. double max,
  3. double mode
)

Generates a random value from a triangular distribution.

Implementation

double triangular(double min, double max, double mode) {
  final u = _random.nextDouble();
  final fc = (mode - min) / (max - min);

  if (u < fc) {
    return min + math.sqrt(u * (max - min) * (mode - min));
  } else {
    return max - math.sqrt((1 - u) * (max - min) * (max - mode));
  }
}