UserSimulation.ErrorGenerator.GetRandomStringFromDistribution C# (CSharp) Méthode

GetRandomStringFromDistribution() private méthode

Given a distribution, this method chooses a string from the distribution at random based on the probabilities given in the distribution.
private GetRandomStringFromDistribution ( double>.Dictionary distribution ) : string
distribution double>.Dictionary
Résultat string
        private string GetRandomStringFromDistribution(Dictionary<string, double> distribution)
        {
            var rng = new Random();
            var rand = rng.NextDouble();

            int i = 0;
            double sum = distribution.ElementAt(i).Value;
            while (sum < rand)
            {
                i++;
                sum += distribution.ElementAt(i).Value;
            }

            var kvp = distribution.ElementAt(i);
            return kvp.Key;
        }