![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Что то непонятное с Random!!! [D5, Win2k]
AM © (2002-10-08 16:56:00)Кто-нибудь сталкивался с таким?
После запуска программы Функция
Random(255);
всегда ПЕРВОЕ значение выдает 0. ВСЕГДА!!! Делал более 20 попыток. А слудеющие занчения нормально рандомит: 101, 28, 196, 250 ...
Это его нормальное поведение?
или что-то не так с ним, а может с компьютером?
AM (2002-10-08 17:09:00) [1]Всем спасобо,
Добился желаемого эффекта!
still (2002-10-08 17:08:00) [2]Маленькое дополнение - randomize нужно использовать ОДИН раз.
В противном случае (например, если перед каждым вызовом random поставить randomize) нарушится распределение чисел, т.е. равномерность последовательности будет еще хуже чем есть при использовании random
AL2002 (2002-10-08 17:05:00) [3]Или RandSeed(123);
still (2002-10-08 17:03:00) [4]сначала - randomize для инициализации
Числа поэтому и псевдослучайные, что вычисляются как
a[i+1] = F(a[i]), т.е. каждое последующее зависит от предыдущего.
randomize как раз устанавливает a[0], т.е. первое число в последовательность. Здесь алгоритм зависит, если не ошибаюсь, от системного времени.
Т.е. если хочешь, чтобы при каждом запуске программы вырабатывалась одинаковая последовательность чисел - не используй randomize (есть и такие задачи).
Демонов Е.В. (2002-10-08 17:03:00) [5]просто перед использованием Random выполни строку randomize
AM (2002-10-08 17:01:00) [6]На самом деле он повторяет вооще все подряд:
0, 8, 219, 51 ... - и причем всегда это!!!
>>Начинающий програмер © (08.10.02 16:58)
>>А initialization randomize добавлял?
а это куда надо добавлять?
Начинающий програмер (2002-10-08 16:58:00) [7]А initialization randomize добавлял?