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

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

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

Делать было нечего, стал развлекаться с Random'ом, 1.Есть 3 цикла( Рандомлю до тех пор пока не вырандомится "1"); 2.Еще 1 цикл() который считает количество попыток, пока в 3 циклах сразу не выпадет "1" с 2 попыток. 3.И цикл прогнать пункт 2 1000 раз
Листинг программы
  1. static void Main(string[] args)
  2. {
  3. int mainIndex = 0;
  4. for (int i = 0; i < 1000; i++)
  5. {
  6. int ind1 = 0;
  7. int ind2 = 0;
  8. int ind3 = 0;
  9. int mInd = 0;
  10. int rnumber = 0;
  11. Random r = new Random();
  12. while (ind1 != 2 || ind2 != 2 || ind3 != 2) //пока в 3 циклах сразу "1" не выпадет со 2 раза
  13. {
  14. ind1 = 0;
  15. ind2 = 0;
  16. ind3 = 0;
  17.  
  18. do //пока не выпадет "1"
  19. {
  20. rnumber = r.Next(1, 6);
  21. ind1++;
  22. } while (rnumber != 1);
  23.  
  24. rnumber = 0;
  25. do //пока не выпадет "1"
  26. {
  27. rnumber = r.Next(1, 6);
  28. ind2++;
  29. } while (rnumber != 1);
  30.  
  31. rnumber = 0;
  32. do //пока не выпадет "1"
  33. {
  34. rnumber = r.Next(1, 6);
  35. ind3++;
  36. } while (rnumber != 1);
  37. mInd++;
  38. //Console.WriteLine("Вывод: " + ind1 + " " + ind2 + " " + ind3);
  39. }
  40. mainIndex += mInd;
  41. System.Threading.Thread.Sleep(15); //ПАУЗА
  42. Console.WriteLine("Число попыток: " + mInd);
  43. }
  44. Console.WriteLine("Среднее количество попыток: " + mainIndex / 1000);
  45. Console.ReadKey();
  46. }
Когда есть пауза, все прекрасно. Если пазу нет то рандомные числа начинают дико повторяться. Часть вывода консоли без паузы: Число попыток: 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
Листинг программы
  1. Random r = new Random();

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


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

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

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

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

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

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