@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

А хочется чтобы были разные числа, подскажите пожалуйста где я неправ.
  • Вопрос задан
  • 3229 просмотров
Решения вопроса 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). Если вы создаете несколько объектов одновременно, они вам будут возвращать одинаковые значения.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы