Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.28;
Скачать: CL | DM;

Вниз

Насколько случайна Random   Найти похожие ветки 

 
starter   (2004-11-11 10:20) [0]

Помню раньше где проскакивала инфа, что функция random на самом деле не случайна, что-то типа в длительном цикле вызов randomize и random выстраиваются в повторяющуюся последовательность. Это в самом деле так? Если да, то как правильно реализовать настоящий и быстрый генератор случайных чисел.


 
Семен Сорокин ©   (2004-11-11 10:23) [1]

дык, randomize в цикле вызывать не надо, его один раз нужно вызвать - при запуске.

From Help:

Do not combine the call to Randomize in a loop with calls to the Random function. Typically, Randomize is called only once, before all calls to Random.


 
Reindeer Moss Eater ©   (2004-11-11 10:23) [2]

Она псевдослучайна

Если да, то как правильно реализовать настоящий и быстрый генератор случайных чисел.

Над этим бьются целые софтварные компании с переменным успехом.


 
starter   (2004-11-11 10:49) [3]

про Randomize я в курсе что до цикла надо, но непонятки все равно имеются. Допустим есть бесконечный цикл, длится может часами/сутками, пока юзер не прервет, в нем иногда в зависимости от ситуации вызывается Random, т.е. не в каждом шаге цикла. Тогда в данном случае когда вызывать Randomize, до входа в бесконечный цикл? Т.е. на сколько далеко распространяется действие randomize в кодовом и временном измерениях?


 
Reindeer Moss Eater ©   (2004-11-11 10:51) [4]

На время существования процесса распространяется


 
Smithson   (2004-11-11 10:56) [5]

Ramdomize задает "случайным образом" первый элемент последовательности, которую потом генерит Random.
То есть Random есть просто некая хитрая функция, которая из опорного числа и входного параметра генерит другое число. Если Randomize не использовать, то генерируемая последовательность будет всегда одна и та же.
Randomize задает "случайным образом" это самое значение опорного числа. Причем делать это можно чаще, чем раз в жизни, надо просто понимать, что делаешь. "Случайным образом" означает, что некий алгоритм все же есть, но предугадать или воспроизвести его сложно. Скорее всего, в качестве опорного числа ставиться число милисекунд после включения компьютера, или число тактов процессора, или еще что-то сложноповторяемое.

Теперь, глядя на свой алгоритм и прочитав это, реши, как часто тебе надо вызывать Randomize.


 
starter   (2004-11-11 11:18) [6]

ага, значит таки для чистоты случайности имеет смысл randomize вызывать внутри цикла. Но у меня критично по скорости, программа расчетная, если интерсно посмотрите http://optytrace.100free.com. Пытаюсь вот разобраться, стоит ли искать другую реализацию random?


 
TUser ©   (2004-11-11 11:23) [7]


> Пытаюсь вот разобраться, стоит ли искать другую реализацию
> random?

Для серьезных вещей (типа генерации паролей) - безусловно. Для фигни - годится и Random. См. 3й том Кнута (или 2й - не помню), там много хорошего написано.


 
Jeer ©   (2004-11-11 12:52) [8]

starter   (11.11.04 11:18) [6]

>ага, значит таки для чистоты случайности имеет смысл randomize вызывать внутри цикла

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


 
wnew ©   (2004-11-11 13:07) [9]

Можно неплохо обходиться функцией Random, если  заданый диапазон цифр заносить в случайно выбераемые ячейки массива, а затем также случайно выбирать уже элемент этого массива и использовать значение, хранящееся в этой случайно выбраной ячейке.



Страницы: 1 вся ветка

Текущий архив: 2004.11.28;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.031 c
3-1097219685
Настенька
2004-10-08 11:14
2004.11.28
синхронизация dbgridов


1-1100241460
TankMan
2004-11-12 09:37
2004.11.28
Скажите как запускать коммандную строку с досовскими командами?


3-1099192478
ali_t
2004-10-31 06:14
2004.11.28
локальная бд


3-1099378064
Frozzen
2004-11-02 09:47
2004.11.28
Проблемы с Ibase


14-1100179330
peypivo
2004-11-11 16:22
2004.11.28
Джава и ЖПРС