Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/75: Рейтинг темы: голосов - 75, средняя оценка - 4.68
0 / 0 / 0
Регистрация: 25.09.2011
Сообщений: 12
1

Почему Random генерирует одинаковые числа?

13.11.2015, 13:12. Показов 15503. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C#
1
2
3
4
5
6
7
8
9
10
11
12
int Do = (int)this.numberDo.Value; //получаем количество символов введенное пользователем
int[] mass = new int [Do];
 
string ff = "";
 
for(int = 0; a<Do; a++)
{
     Random rnd = new Random();
     int i = rnd.Next(0,9);
     ff = ff + " " + i.ToString();
}
textBoxItog.Text = ff;
Код набивал вручную
Прикол в том что выводит в textBox одинаковые цифры, к примеру, 5 5 5 или 2 2 2 2. Но всё меняется когда ставишь точку останова в конце цикла, тогда всё работает как надо. Что за беда?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.11.2015, 13:12
Ответы с готовыми решениями:

Почему Random генерирует одинаковые числа?
Здравствуйте, столкнулся с задачей. Random random = new Random(); for (int i = 0; i &lt; count; i++)...

Random генерирует одинаковые числа
Здравствуйте! Подскажите пожалуйста... Мне надо в одной из лабораторных работ сделать так, чтобы...

Почему код генерирует одинаковые IP-адреса?
Здравствуйте Я сделал программу, которая создает рандомный IP, после чего проверяет, существует ли...

Генератор случайных чисел генерирует одинаковые числа
using System; using System.Collections.Generic; using System.Linq; using System.Text; using...

4
Эксперт .NET
5877 / 4754 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
13.11.2015, 13:20 2
Nebojitel,
C#
1
Random rnd = new Random();
поставьте перед циклом
1
0 / 0 / 0
Регистрация: 25.09.2011
Сообщений: 12
13.11.2015, 13:24  [ТС] 3
Работает! В чем прикол, если можно на пальцах?
0
Эксперт .NET
5877 / 4754 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
13.11.2015, 13:33 4
Лучший ответ Сообщение было отмечено tezaurismosis как решение

Решение

Nebojitel,
Если объект rnd создавать в цикле, то:
т.к. итерации цикла выполняются очень быстро (практически мгновенно), то rnd создается в соответствии с одним и тем же значением времени. Так как время создания объекта одно и тоже, то каждый раз в rnd будет одна и та же последовательность. В цикле из rnd берется только первое значение, а так как последовательность одна и та же, то и присваиваются одинаковые числа. Точка останова меняла время создания rnd, поэтому числа были разные.
1
0 / 0 / 0
Регистрация: 25.09.2011
Сообщений: 12
13.11.2015, 13:50  [ТС] 5
Даценд, Спасибо!
0
13.11.2015, 13:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.11.2015, 13:50
Помогаю со студенческими работами здесь

Random генерирует одинаковую последовательность
private void button1_Click(object sender, EventArgs e) { //timer1.Start(); ...

Random генерирует одни и те же значения
вот пример кода: double ran(double a) { Random rand = new Random(); ...

Функция генерирует одинаковые случайные числа
Необходимо заполнить три массива произвольного размера случайными числами. Для заполнения массивов...

Функция заполнения генерирует одинаковые случайные числа
Помогите, пожалуйста, разобраться. Я написал функцию заполнения массива и вызываю ее при для...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru