· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.A&O —› PRNG

<< . 1 . 2 .

Посл.отвђт Сообщенiе


Дата: Июн 25, 2004 23:05:17

Еще раз смотрим на однобитный генератор

Прости меня, пожалуйста, я, конечно, согласен с теоретическими выкладками. Ты совершенно прав. Полностью и абсолютно. И про длину периода, и про число состояний...

Только я, хоть убей, не догоняю, почему ты его "однобитным" назвал?

В твоем случае возвращается
mov [rnd_data+edx],eax


Ты что, хочешь сказать, что тебе эта инструкция 0 и 1 на выходе даст? Тогда я с головой не дружу. Все мои примеры возвращают числа в диапазоне 0 <= x <= RAND_MAX. При чем тут биты?

Или ты имеешь в виду фразу Кнута
... Представляет интерес частный случай когда p = 2. Иногда требуется генератор случайных чисел, вырабатывающий всего лишь случайную последовательность двоичных разрядов - нулей и единиц - вместо дробей, лежащих между нулем и единицей.

(р, в данном случае, это m).
Ты об этом? Я бы разобраться хотел...


Дата: Июн 26, 2004 00:30:46

volodya
Однобитный герератор я стал рассматривать потому, что на нем проще всего показать что для последнего бита не важно что у нас было в массиве. У меня генератор не однобитный, но его можно рассматривать как 32 обнобитных генератора, в которых возникновение переноса в i-том разряде заставляет генератор i+1 разряда перепрыгнуть к другому состоянию(Кнут еще предлагает перенос из старших разрядов добавлять к младшим, что позволит увеличить длину последовательности младших разрядов). В связи с этим если в младшем разряде не все нули, генератор никогда не придет к состоянию когда в каком-то разряде будет постоянно генерироваться 0. Но, если старшие разряды мы инициализировали нулями, может потребоваться некоторое количество шагов, прежде чем генератор выйдет на генерирование периодической последовательность.


Дата: Июн 26, 2004 00:44:51 · Поправил: volodya

OК, никто и не спорил, что двоичный PRNG даст хорошие результаты и на rdtsc-заполненном массиве. Но я, хоть режьте, не согласен с тем, что и (0 <= x <= UINT_MAX)-генератор даст хоть сколь-нибудь хорошие результаты на сием. Сам посмотри. Нагони ТУЧУ чисел rdtsc. Пропусти ее через генератор (через ЗДОРОВЕННЫЙ цикл). Загони полученные числа в какой-нибудь мат. пакет и погляди на рассеивание. Ну как?


Дата: Июн 27, 2004 08:29:18

или в winhex, он тоже показывает рассеивание

<< . 1 . 2 .


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.711