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

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

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

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





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

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


Чему равен период генератора случайных чисел?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 24.12.2006 19:41
Сообщение #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 
 К началу страницы 
+ Ответить 
Alopl22
сообщение 25.12.2006 17:46
Сообщение #3





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

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


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

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

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


Michael_Rybak
*****

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

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


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


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

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

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


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

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


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


Профи
****

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

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


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

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

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


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

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

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


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


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Malice
сообщение 27.12.2006 9:38
Сообщение #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 - 27.12.2006 9:48
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
SKVOZNJAK
сообщение 30.12.2006 14:57
Сообщение #9


Профи
****

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

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


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

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

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


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

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

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


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


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

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

 



- Текстовая версия 10.07.2025 9:07
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"