Увеличение вероятности выпадения случайного числа - C#

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

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

Здравствуйте. Есть массив int из ста элементов, который заполнен числами от 0 до 99. По нажатию на кнопку пользователю выводится случайный элемент массива. Необходимо сделать так, чтобы вероятность выпадения определённого элемента увеличивалась в зависимости от значения этого элемента. Т.е. чтобы число 99 выпадало значительно чаще, а 0 почти не выпадал. При этом рандомность необходимо сохранить, чтобы вероятность выпадения 0 всё же была, да и остальных чисел тоже. Пример: 95, 99, 89, 99, 90, 57, 98,...N..., 0, 97, 95,...N..., 12, 70, 72, 94.... Как это осуществить? Есть какие-нибудь готовые формулы на такой случай?

Решение задачи: «Увеличение вероятности выпадения случайного числа»

textual
Листинг программы
  1. int n0 = 0;
  2.             int n10 = 0;
  3.             int n20 = 0;
  4.             int n30 = 0;
  5.             int n40 = 0;
  6.             int n50 = 0;
  7.             int n60 = 0;
  8.             int n70 = 0;
  9.             int n80 = 0;
  10.             int n90 = 0;
  11.             for (int j = 0; j <= 10000; j++)
  12.             {
  13.                 int[] Arr = new int[100];
  14.                 int nSumm = 0;
  15.                 for (int i = 0; i < Arr.Length; i++)
  16.                 {
  17.                     Arr[i] = i;
  18.                     nSumm += i;
  19.                 }
  20.                 Random rnd = new Random();
  21.                 int nRand = rnd.Next(0, nSumm + 1);
  22.                 for (int i = 0; i < Arr.Length; i++)
  23.                 {
  24.                     nRand = nRand - Arr[i];
  25.                     if (Arr[i] >= nRand)
  26.                     {
  27.                         //MessageBox.Show(Arr[i].ToString());
  28.  
  29.                         if (Arr[i] >= 0 && Arr[i] < 10)
  30.                             n0++;
  31.                         if (Arr[i] >= 10 && Arr[i] < 20)
  32.                             n10++;
  33.                         if (Arr[i] >= 20 && Arr[i] < 30)
  34.                             n20++;
  35.                         if (Arr[i] >= 30 && Arr[i] < 40)
  36.                             n30++;
  37.                         if (Arr[i] >= 40 && Arr[i] < 50)
  38.                             n40++;
  39.                         if (Arr[i] >= 50 && Arr[i] < 60)
  40.                             n50++;
  41.                         if (Arr[i] >= 60 && Arr[i] < 70)
  42.                             n60++;
  43.                         if (Arr[i] >= 70 && Arr[i] < 80)
  44.                             n70++;
  45.                         if (Arr[i] >= 80 && Arr[i] < 90)
  46.                             n80++;
  47.                         if (Arr[i] >= 90 && Arr[i] < 100)
  48.                             n90++;
  49.                         break;
  50.                     }
  51.                 }
  52.             }
  53.             MessageBox.Show(n0.ToString() + "\n" +
  54.                 n10.ToString() + "\n" +
  55.                 n20.ToString() + "\n" +
  56.                 n30.ToString() + "\n" +
  57.                 n40.ToString() + "\n" +
  58.                 n50.ToString() + "\n" +
  59.                 n60.ToString() + "\n" +
  60.                 n70.ToString() + "\n" +
  61.                 n80.ToString() + "\n" +
  62.                 n90.ToString());

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


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

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

6   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы