private float Inheritance(double min, double max, double mode, double noise, Random rand) { //Get noise around inheritance using triangular ditribution double Max = Math.Min(mode + noise, max); double Min = Math.Max(mode - noise, min); BetaScaled Distribution = BetaScaled.PERT(Min, Max, mode, rand); return((float)Distribution.Sample()); }
//Functions for birth private float[] InitialDistributions(SimParams par, float noise, float initial, float max, float min) { float[] DistArray = new float[par.NumBirds]; if (noise != 0) { float Max = Math.Min(initial + noise, max); float Min = Math.Max(initial - noise, min); BetaScaled Dist = BetaScaled.PERT(Min, Max, initial, par.Rand); for (int i = 0; i < par.NumBirds; i++) { DistArray[i] = (float)Dist.Sample(); } } else { DistArray = Enumerable.Repeat(initial, par.NumBirds).ToArray(); } return(DistArray); }
public void Initialize(Tuple <object, object, object> data) { export = data; this.Distribution = BetaScaled.PERT((double)data.Item1, (double)data.Item2, (double)data.Item3); }
public BetaPertDistribution(double min, double max, double mostLikely) { this.Distribution = BetaScaled.PERT(min, max, mostLikely); export = new Tuple <object, object, object>(min, max, mostLikely); }