Показать сообщение отдельно

  #19  
Старый 03.10.2009, 00:22
slesh
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
С нами: 10097606

Репутация: 3349


По умолчанию

2 desTiny ну так почти все генераторы основаны на математической генерации последовательности и вся фишка именно в инициализации. Даже стандартный генератор в делфи и си - они математические. По этому их и назвали псевдослучайные.

Другое дело генераторы основанные на более случайных числах или промежутках чисел. К примеру основанный на rdtsc потому как случайности вносит частота процессора, его производительность и загруженность системы и ты можеш сказать примерно какие значения он нагенерит но не сможеш сказать их точного значения.
Вот тебе простой пример:
Код:
 rdtsc // 0000098C D88D99BD
 mov ecx, eax
 mov ebx, edx
 rdtsc // 0000098C D88D99E2
Как видиш за время выполнение нескольких машинных инструкций проц выполнил 37(0x25) тактов и такое примерно всё время было. При большей нагрузке на систему число начало меняться в диапазоне он 0x18 до 0x26 и это на моём проце. на твоем проце будут другие значения скорее всего.

Вот тебе и генератор небольших случайных чисел. не требующий инициализации и не выдающий последовательность чисел. очень хорош генератор для небольших чисел с не очень частым использованием. Но необходимо учитывать тот факт что rdtsc часто выдает числа только четные )

Кстати rdtsc очень удобно юзать для улучшения качества обычных ГСЧ потому что значения можно подмешивать в результаты обычного ГСЧ и таким образов давая большую случайность, а главное - типа небольшая и не напряжная дополнительная инициализация при каждой генерации
 
Ответить с цитированием