@foma24
QA Engineer

C# Почему рандом всегда выводит одни и те же числа?

Добрый день.
Только начал осваивать C#.
Нужно сделать генератор случайных чисел. Получается такой код:
Random randM = new Random();
            Random randV = new Random();
            Random randL = new Random();

            Mas = randMt.Next(1, 7)+6;
            label6.Text = String.Format("{0}", Mas);
                        
            Vin = randV.Next(2, 13) + 12;
            label7.Text = String.Format("{0}", Vin);
                        
            Ud = randL.Next(1, 7) + 6;
            label8.Text = String.Format("{0}", Ud);


Результат вывода получается всегда одно число, т.е. например
Mas = 8
Vin = 16
Ud = 8

А хочется чтобы были разные числа, подскажите пожалуйста где я неправ.
  • Вопрос задан
  • 3288 просмотров
Решения вопроса 1
Эм... чесно говоря странно... Нужно будет покопать

Чтобы работало сделайте так:
Random rand = new Random();
Mas = rand.Next(1, 7)+6;
label6.Text = Mas.ToString();
                        
Vin = rand.Next(2, 13) + 12;
label7.Text = Vin.ToString();
                        
Ud = rand.Next(1, 7) + 6;
label8.Text = Ud.ToString();


Нет нужды создавать 3 рандома, можно использовать повсюду один.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@nfrey
new Random создает instance рандома, который зависит от кол-ва тиков в системе (clock). Если вы создаете несколько объектов одновременно, они вам будут возвращать одинаковые значения.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы