Магия класса Random'a - C#

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

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

Делать было нечего, стал развлекаться с Random'ом, 1.Есть 3 цикла( Рандомлю до тех пор пока не вырандомится "1"); 2.Еще 1 цикл() который считает количество попыток, пока в 3 циклах сразу не выпадет "1" с 2 попыток. 3.И цикл прогнать пункт 2 1000 раз
static void Main(string[] args)
        {
            int mainIndex = 0;
            for (int i = 0; i < 1000; i++)
            {
                int ind1 = 0;
                int ind2 = 0;
                int ind3 = 0;
                int mInd = 0;
                int rnumber = 0;
                Random r = new Random();
 
                while (ind1 != 2 || ind2 != 2 || ind3 != 2) //пока в 3 циклах сразу "1" не выпадет со 2 раза
                {
                    ind1 = 0;
                    ind2 = 0;
                    ind3 = 0;

                    do        //пока не выпадет "1"
                    {
                        rnumber = r.Next(1, 6);
                        ind1++;
                    } while (rnumber != 1);

                    rnumber = 0;
                    do                  //пока не выпадет "1"
                    {
                        rnumber = r.Next(1, 6);
                        ind2++;
                    } while (rnumber != 1);

                    rnumber = 0;
                    do                 //пока не выпадет "1"
                    {
                        rnumber = r.Next(1, 6);
                        ind3++;
                    } while (rnumber != 1);
 
                    mInd++;
                    //Console.WriteLine("Вывод: " + ind1 + " " + ind2 + " " + ind3);
                }
                mainIndex += mInd;
                System.Threading.Thread.Sleep(15);                //ПАУЗА
                Console.WriteLine("Число попыток: " + mInd);
 
            }
            Console.WriteLine("Среднее количество попыток: " + mainIndex / 1000);
 
            Console.ReadKey();
        }
Когда есть пауза, все прекрасно. Если пазу нет то рандомные числа начинают дико повторяться. Часть вывода консоли без паузы: Число попыток: 41 Число попыток: 41 Число попыток: 41 Число попыток: 41 Число попыток: 41 Число попыток: 134 Число попыток: 134 Число попыток: 134 Число попыток: 134 Число попыток: 134 Число попыток: 134 Число попыток: 134 Число попыток: 134 Число попыток: 134 Число попыток: 134 Число попыток: 134 Число попыток: 134 Число попыток: 134 Число попыток: 134 Число попыток: 134 Число попыток: 134 Число попыток: 134 Число попыток: 339 Число попыток: 339 Число попыток: 339 Число попыток: 339 Число попыток: 339 Часть вывода консоли c паузой: Число попыток: 73 Число попыток: 31 Число попыток: 36 Число попыток: 1074 Число попыток: 733 Число попыток: 141 Число попыток: 337 Число попыток: 597 Число попыток: 76 Число попыток: 241 Число попыток: 337 Число попыток: 442 Число попыток: 8 Число попыток: 190 Число попыток: 89 Число попыток: 30 Число попыток: 54 Число попыток: 360 Число попыток: 86 Число попыток: 290 Число попыток: 447 Число попыток: 571 Число попыток: 221 Число попыток: 61 Число попыток: 147 Число попыток: 129 Число попыток: 147 Итак вопрос: Почему без паузы начинают повторяться числа? Метод Next класса Random не успевает обрабатывать и валит старые числа??

Решение задачи: «Магия класса Random'a»

textual
Листинг программы
Random r = new Random();

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


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

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

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