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

GetRandomTranspositionFromDistribution() private méthode

private GetRandomTranspositionFromDistribution ( double>.Dictionary transposition_distribution ) : int
transposition_distribution double>.Dictionary
Résultat int
        private int GetRandomTranspositionFromDistribution(Dictionary<int, double> transposition_distribution)
        {
            var rng = new Random();
            var rand = rng.NextDouble();

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

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