Офлайн-казино / Рулетка / На сколько случаен генератор случайных чисел.
Перейти вниз
На сколько случаен генератор случайных чисел.   ID:49274 Вс, 1 декабря 2002 01:00 [#] [»)
Скаитс Форумы Покер.ру
С генераторами случайных чисел связано много историй. Помню, в студенческие времена, прочел о генераторе случайных чисел на майнфрейме IBM. Когда его стали использовать для моделирования физического процесса и потребовалось распределить равномерно точки в пространстве, то оказалось, что все точки равномерно распределились по трем плоскостям... Даже картинка приводилась. Видно функция там такая хитрая была.

Решил поэксперементировать с экселовским генератором случайных чисел. Смоделировать рулетку. Проверить на чет/нечет или больше/меньше (1-18/19-36).

Макрос инициализирует генератор один раз (важно), в далнейшем вызывается только функция RND().

Делается поиск серий (только нечетные числа и зеро). Серия печатается только если такая-же по длине как предыдущая или больше.

Результат, что для чет/нечет, что красное/черное, что больше/меньше приблизительно одинаков. Через какое-то количество спинов, генератор начинает повторять длинные серии с точностью до номеров.

Если кого заинтересует - пишите, вышлю экселовский файл.

Скайтс.

Вложение: image1.gif
(Размер: 26.60KB, Загружено 681 раз)
        
 
Re: На сколько случаен генератор случайных чисел.   ID:49275   ответ на 49274 Пт, 6 декабря 2002 01:00 («] [#] [»)
Les Форумы Покер.ру
насколько я осведомлен, RND () это генератор псеводослучайных чисел, т.е он действительно,
задает предопределенную последовательность в зависимости от аргумента . Чтобы
последовательность была случайной нужно делать примерно так (за синтаксис не отвечу) RND (-
time()) , т.е. в зависимости от текущего времени.
        
 
Re: На сколько случаен генератор случайных чисел.   ID:49285   ответ на 49275 Пн, 16 декабря 2002 01:00 («] [#] [»)
Лох Чилийский Форумы Покер.ру
Гы... Каждый раз - косяк может получиться.
Общая идея мультипликативного ГСЧ:
Берем начальное число и множим его на мультипликатор, от получившегося числа берем
несколько разрядов. Следующий раз уже предыдущее получившееся число множим на тот же
мультипликатор. При грамотном выборе мультипликатора получаем псевдослучайную
последовательность с.в. Чтобы последовательность не получалась одной и той же, при
генерации следующей последовательности с.в. берем несколько иное начальное число (обычно
делается сдвиг от некоторой константы путем добавления значения таймера не влияющего на
порядок числа) и множим, множим, множим, до тех пор пока нам нужны псевдослучайные числа.

Если для получения каждого нового числа заново инициировать ГСЧ (выбирать новое начальное
число), то налицо будет зависимость последовательности от показаний таймера. Т.е. наложение
частот генерации с.ч. с частотами таймера дадут АБСОЛЮТНО не имеющую ничего общего с
псевдослучайной последовательность.

P.S. Выше приведено крайне общее описании принципа работы ГСЧ. За подробностями
рекомендую обращаться к Кнуту, например. Самостоятельный выбор мультипликатора
нежелателен, существуют зарекомендовавшие себя значения. Смотрим исходники Borland C++,
опять же например.
P.P.S. Код ГСЧ содержит намного меньше знаков чем данный пост.
        
 
Re: На сколько случаен генератор случайных чисел.   ID:49286   ответ на 49285 Пн, 16 декабря 2002 01:00 («] [#] [»)
Скаитс Форумы Покер.ру
...
Если для получения каждого нового числа заново
инициировать ГСЧ (выбирать новое начальное
число), то налицо будет зависимость последовательности
от показаний таймера. Т.е. наложение
частот генерации с.ч. с частотами таймера дадут
АБСОЛЮТНО не имеющую ничего общего с
псевдослучайной последовательность.
...

Полностью согласен!
Если ставить Randomize, например, перед каждым вызовом
функции RND(), получится еще более печальный результат -
для приведенного макроса выходили еще более короткие
повторяющиеся цыклы...
        
 
Re: На сколько случаен генератор случайных чисел.   ID:49287   ответ на 49286 Вт, 17 декабря 2002 01:00 («] [#] [»)
Лох Чилийский Форумы Покер.ру
Не понял, а что собственно тебя удивило в том что ГСЧ последовательность начинает по кругу
гонять?
Разрядность низковата, поэтому так скоро ГСЧ приходит к своему стартовому значению. А
дальше - одна дорога. Цепочка раскручивается полностью, если знаешь мультипликатор.
В результате можно нарисовать неслабый кодировщик...
        
 
Re: На сколько случаен генератор случайных чисел.   ID:49288   ответ на 49274 Вт, 17 декабря 2002 01:00 («] [#]
Коровин Форумы Покер.ру
Проблема в том, что допустим в Покере карты раздаются отнюдь не случайно
Все мечтаю написать функции, иммитирующие различные приемы дилера
и иследовать возможность зарядки колоды упорядочиванием карт.

Тема достаточно интересная.
        
 
 
Предыдущая тема:Тиеру
Следующая тема:Где Manoya????????
Быстрый переход к форуму
  
Текстовая версия  RSS лента
Вернуться вверх

Текущее время: Пт, 15 ноября 12:41:41 2024
Время, затраченное на генерацию страницы: 0.01568 секунд