Случайные числа

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)