Declaration: function Random [ (Range: Word) ]: Some type as parametr // ... Returl Value: A Word random number within range 0 <= X < Range
Если ты об этом ...
Alopl22
25.12.2006 21:46
Цитата(klem4 @ 24.12.2006 21:41)
Если ты об этом ...
Нет. Это количество генерируемых чисел, когда начинается повторение генерируемых чисел.
Michael_Rybak
25.12.2006 21:50
Так это зависит от генератора. В хорошем генераторе такого периода вообще быть не должно.
Altair
26.12.2006 17:08
Цитата
Это количество генерируемых чисел, когда начинается повторение генерируемых чисел
Поподробнее пожалуйста! Первое повторение числа, которое уже было? Так оно зависит от диапазона чисел...
Malice
26.12.2006 18:23
Цитата(Altair @ 26.12.2006 13:08)
Поподробнее пожалуйста! Первое повторение числа, которое уже было? Так оно зависит от диапазона чисел...
Нет, когда вся последовательность начинает повторяться. По идее такой период есть и как минимум должен равнятся разрядности числа seed, которым инициализируется этот рандом.. Ps Накатал небольшую прогу для проверки - период не нашел
Altair
27.12.2006 11:27
Цитата
Нет, когда вся последовательность начинает повторяться
Да не будет она повторяться, генератор случ. чисел на таймере времени работает!
Malice
27.12.2006 13:38
Цитата(Altair @ 27.12.2006 7:27)
Да не будет она повторяться, генератор случ. чисел на таймере времени работает!
Т.е. если часто-часто вызывать random, то числа подряд пойдут ? И чего они тогда повторяются без randomize ? Ладно отвечу Генератор работает так: randomNext=f(randomPrev), т.е. следующее число зависит от предыдущего. Без randomize генератор инициализируется нулем (попробуй Writeln (Randseed) поставь), поэтому числа без randomize получаются одинаковые. Если в начале поставить RandSeed=1, например, то числа будут тоже одинаковые, но другие. Randomize делает RandSeed=Timer. Вот. Исходя из того, что тип RandSeed- Longint, можно сделать вывод, что период=$FFFFFFFF.
Вот еще примерчик:
for i:=1 to 20 do write (random (100),' '); writeln; randseed:=870078620; for i:=1 to 10 do write (random (100),' ');
Вторая группа чисел начнет повторять первую с 5-го числа.
SKVOZNJAK
30.12.2006 18:57
Цитата(Altair @ 27.12.2006 4:27)
Да не будет она повторяться, генератор случ. чисел на таймере времени работает!
Этот вопрос будет возникать вновь и вновь, из за СИ. На игровом форуме сишники разбирались, от чего зависит рандом на сервере. Вопрос важный, шанс выпадения ценных вещей зависит от работы генератора случайных чисел. Самое весёлое, на СИ для генератора случайных чисел имеется библиотека, и из неё эти числа каким-то способом достаются. Через какое-то время случайные числа действительно идут по кругу.
Altair
30.12.2006 20:06
Malice, суть все равно в таймере!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.