Магия класса Random'a - C#
Формулировка задачи:
Делать было нечего, стал развлекаться с Random'ом,
1.Есть 3 цикла( Рандомлю до тех пор пока не вырандомится "1");
2.Еще 1 цикл() который считает количество попыток, пока в 3 циклах сразу не выпадет "1" с 2 попыток.
3.И цикл прогнать пункт 2 1000 раз
Когда есть пауза, все прекрасно.
Если пазу нет то рандомные числа начинают дико повторяться.
Часть вывода консоли без паузы:
Число попыток: 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 не успевает обрабатывать и валит старые числа??
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(); }
Решение задачи: «Магия класса Random'a»
textual
Листинг программы
Random r = new Random();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д