Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB .NET > Random


Автор: noob4ever 18.7.2010, 21:13
Интересно, почему

в этом коде переменные a1, a2 разные
Код

Dim rnd1 As New Random
Dim a1 As Integer = rnd1.Next(0, 100)
Dim a2 As Integer = rnd1.Next(0, 100)


а в этом всегда одинаковые? 
Код


Dim rnd1 As New Random
Dim rnd2 As New Random
Dim a1 As Integer = rnd1.Next(0, 100)
Dim a2 As Integer = rnd2.Next(0, 100)


всегда объявлял Random глобально для каждого разное имя, а тут потребовалось сразу 2 рандома вместе. Думал что из за того что быстро и таймер не обновляется, однако слип даже не помог получать разные значения.

Автор: diadiavova 18.7.2010, 23:57
Рандом - это псевдослучайное число. Если не задается семя при создании экземпляра, то используется текущая дата. Если два объекта созданы одновременно, то они и будут выдавать одинаковую последовательность чисел.

Автор: xXxSataNxXx 19.7.2010, 20:55
А почему бы не делать так? 
Код

Dim a1 as integer = rnd() * 100
Dim a2 as integer = rnd() * 100

Автор: diadiavova 19.7.2010, 22:32
Цитата(xXxSataNxXx @  19.7.2010,  21:55 Найти цитируемый пост)
А почему бы не делать так?

Зачем? smile 

Автор: xXxSataNxXx 19.7.2010, 23:03
Ну, мне кажется, что так во-первых компактней код, а во-вторых точно будет разное число...  smile 

Автор: diadiavova 19.7.2010, 23:14
Если делать как в первом варианте, число тоже будет разным, кроме того не придется "изобретать велосипед". Вопрос как раз и был о том, почему второй вариант выдает одинаковые результаты, а не о том, как сделать, чтобы они были разными.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)