Случайные числа
- From
- Alex Astafiev (2:5000/228.16)
- To
- Artur Mogozov
- Date
- 2002-12-14T13:34:38Z
- Area
- RU.ALGORITHMS
А что ты слышал про распределенные вычисления folding@home, дорогой Artur?
AM> Всем известно, что в системах программирования генераторы случайных
AM> чисел не совершенны (генерится на основе системного времени). Есть ли
AM> алгоритм генерации *очень* случайного числа, а не псевдо-случайного?
Если есть возможность считать что-то от внешнего мира, то следует
воспользоваться:
o координатами мышки в данный момент.
o неявно заставить пользователя нажать на клавиатуру или мышку и засечь время
прошедшее до того как пользователь отреагировал. Даже для процессора Z80
действия пользователя почти вечность и успевает пройти несколько десятков
миллионов циклов. На пентиумах я посоветовал бы воспользоваться командой RDTSC
- она читает содержимое 64битного счетчика, значение которого инкрементируется
каждый такт процессора.
o прочитать текущее время.
o прочитать вход звуковой карты как источник шума.
ЗАТЕМ инициализировать получеными значениями хороший ГСЧ с огромным периодом,
что-то типа KISS.
кстати, в winapi существует алгоритма получающий 64bit псч, и очень хорошие,
рассчитано как раз на то чтобы они не повторядись. это взятие GUID.
---
* Origin: Фидонет - сеть друзей. Будьте дружественнее! (2:5000/228.16)