|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Alex Astafiev 2:5000/228.16 14 Dec 2002 14:34:38 To : Artur Mogozov Subject : Случайные числа --------------------------------------------------------------------------------
AM> Всем известно, что в системах программирования генераторы случайных
AM> чисел не совершенны (генерится на основе системного времени). Есть ли
AM> алгоритм генерации *очень* случайного числа, а не псевдо-случайного?
Если есть возможность считать что-то от внешнего мира, то следует
воспользоваться:
o координатами мышки в данный момент.
o неявно заставить пользователя нажать на клавиатуру или мышку и засечь время
прошедшее до того как пользователь отреагировал. Даже для процессора Z80
действия пользователя почти вечность и успевает пройти несколько десятков
миллионов циклов. Hа пентиумах я посоветовал бы воспользоваться командой RDTSC
- она читает содержимое 64битного счетчика, значение которого инкрементируется
каждый такт процессора.
o прочитать текущее время.
o прочитать вход звуковой карты как источник шума.
ЗАТЕМ инициализировать получеными значениями хороший ГСЧ с огромным периодом,
что-то типа KISS.
кстати, в winapi существует алгоритма получающий 64bit псч, и очень хорошие,
рассчитано как раз на то чтобы они не повторядись. это взятие GUID.
---
* Origin: Фидонет - сеть друзей. Будьте дружественнее! (2:5000/228.16)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/174643dfb57b5.html, оценка из 5, голосов 10
|