Рандомные цифры с разной вероятностью появления - C#

Узнай цену своей работы

Формулировка задачи:

Есть диапазон рандомных чисел:
            Random rand = new Random();
            label4.Text = Convert.ToString(rand.Next(0, 4));
Но у них одинаковая вероятность появления. Как сделать, чтобы вероятность появления цифры 3 = 60%, цифры 2 = 20%, 1 = 15%, 0 = 5%?

Решение задачи: «Рандомные цифры с разной вероятностью появления»

textual
Листинг программы
static Random rn = new Random();
 
        public static int getRnd(Dictionary<double, int> p)
        {
            double total = 0;
            foreach (double d in p.Keys)
                total += d;
            double r = rn.NextDouble() * total;
            total = 0;
            foreach (double d in p.Keys)
            {
                total += d;
                if (total >= r) return p[d];
            }
                
            return -1;
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.4 из 5
Похожие ответы