IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

 
 Ответить  Открыть новую тему 
> Период генератора случ. чисел
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 2
Пол: Мужской
Реальное имя: Алексей

Репутация: -  0  +


Чему равен период генератора случайных чисел?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Цитата(Pascal Help)

Declaration:
function Random [ (Range: Word) ]: Some type as parametr
// ...
Returl Value: A Word random number within range 0 <= X < Range


Если ты об этом ...


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 2
Пол: Мужской
Реальное имя: Алексей

Репутация: -  0  +


Цитата(klem4 @ 24.12.2006 21:41) *

Если ты об этом ...

Нет. Это количество генерируемых чисел, когда начинается повторение генерируемых чисел.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Michael_Rybak
*****

Группа: Пользователи
Сообщений: 1 046
Пол: Мужской
Реальное имя: Michael_Rybak

Репутация: -  32  +


Так это зависит от генератора. В хорошем генераторе такого периода вообще быть не должно.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Цитата
Это количество генерируемых чисел, когда начинается повторение генерируемых чисел

Поподробнее пожалуйста!
Первое повторение числа, которое уже было?
Так оно зависит от диапазона чисел...


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Цитата(Altair @ 26.12.2006 13:08) *

Поподробнее пожалуйста!
Первое повторение числа, которое уже было?
Так оно зависит от диапазона чисел...

Нет, когда вся последовательность начинает повторяться. По идее такой период есть и как минимум должен равнятся разрядности числа seed, которым инициализируется этот рандом..
Ps Накатал небольшую прогу для проверки - период не нашел smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Цитата
Нет, когда вся последовательность начинает повторяться
Да не будет она повторяться, генератор случ. чисел на таймере времени работает!


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Профи
****

Группа: Пользователи
Сообщений: 705
Пол: Мужской

Репутация: -  20  +


Цитата(Altair @ 27.12.2006 7:27) *

Да не будет она повторяться, генератор случ. чисел на таймере времени работает!

smile.gif
Т.е. если часто-часто вызывать random, то числа подряд пойдут ? И чего они тогда повторяются без randomize ?
Ладно отвечу smile.gif Генератор работает так:
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-го числа.

Сообщение отредактировано: Malice -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Профи
****

Группа: Пользователи
Сообщений: 930
Пол: Мужской

Репутация: -  11  +


Цитата(Altair @ 27.12.2006 4:27) *

Да не будет она повторяться, генератор случ. чисел на таймере времени работает!

Этот вопрос будет возникать вновь и вновь, из за СИ. На игровом форуме сишники разбирались, от чего зависит рандом на сервере. Вопрос важный, шанс выпадения ценных вещей зависит от работы генератора случайных чисел. Самое весёлое, на СИ для генератора случайных чисел имеется библиотека, и из неё эти числа каким-то способом достаются. Через какое-то время случайные числа действительно идут по кругу.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Malice, суть все равно в таймере!


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 28.03.2024 22:18
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name