VB6 Функция рандомизации? - PullRequest
0 голосов
/ 07 июля 2011

Я работаю над некоторым ( грязным ) устаревшим кодом, и я натолкнулся на этот фрагмент в Form_Load:

[other code]

Dim r As Byte
Dim g As Byte
Dim b As Byte
Randomize

[more code]

Я все еще относительно новичок во многих частяхиз VB, так что, пожалуйста, извините мое невежество, если это нагло и бьет тебя по лицу, но кто-нибудь может сказать мне, что здесь происходит?Я в порядке с объявлениями переменных, они имеют смысл.Но что «Рандомизировать» просто тусит там?Это должна быть функция рандомизации VB?Если так, то на самом деле ничего не делает здесь, не так ли?Сначала я думал, что это вызывает функцию / подпрограмму, которую написал оригинальный дизайнер (ы), но ничего подобного не существует.В программе нет ошибок (хотя есть сотни бесполезных строк), и если я прокомментирую «Рандомизировать», то, похоже, ничего не изменится.

Ответы [ 3 ]

5 голосов
/ 07 июля 2011

Randomize заполняет генератор случайных чисел текущим системным временем (соответствует srand(time(NULL)), если вы привыкли к C или C ++).Как и в любом другом языке, генератор случайных чисел обычно должен быть засеян только один раз (при запуске приложения), но распространенная ошибка состоит в том, что он запускается внутри некоторого метода, который вызывается повторно, поэтому я не удивлюсь, если это так.

Заметьте, однако, что без какого-либо вызова Randomize одна и та же последовательность случайных чисел будет генерироваться при каждом запуске программы.

2 голосов
/ 07 июля 2011

Рандомизировать семена генератор случайных чисел. Если функция «Rnd» (которая генерирует случайное число) появляется в другом месте кода, очень вероятно, что Randomize бесполезен.

1 голос
/ 07 июля 2011

Randomize [optional seed] seed генератор случайных чисел для всех последующих вызовов Rnd.

...