15 июня 2025, 19:20:38

Новости:

Чтобы использовать все возможности форума на смартфоне или планшете необходимо в браузере выбрать настройку "Версия для ПК".


avatar_Апофигей

Генератор случайных чисел

Автор Апофигей, 19 февраля 2005, 14:55:31

0 Пользователей и 1 гость просматривают эту тему.

Апофигей

Кто может рассказать устройство генератора случайных чисел? Если логически помыслить, то это должна быть какая нибудь функция зависимости от постоянно меняющегося параметра, а именно - времени. Может быть кто-нить даже приведет текст программы, демонстрирующей его работу?

Frankenshtain

[Для просмотра ссылки зарегистрируйтесь]

А чё демонстрировать и так всё ясно: при обращении к определённому адресу памяти считывается не его содержимое, а случайное число.
Встраиваевыемые сейчас в чипсеты ГСЧ генерируют числа на основе своей температуры.
Не надо боятся быть одним, надо боятся быть нулём.

Говорящий не знает, а знающий не говорит.

EvilAngel

20 февраля 2005, 16:58:06 #2 Последнее редактирование: 20 февраля 2005, 17:10:31 от EvilAngel
Если просто, то генератор псевдослучайных чисел это просто периодическая функция, с большим периодом (значения этой функции могут быть сведены в таблицу), инициализация необходима для того чтобы функция начинала работу не с первого значения, а с некого другого, то есть это просто адрес входа в таблицу. Подробнее ищи про линейные когруентные генераторы и  регистра сдвига с линейной обратной связью. С генераторами истинно случайных чисел сложнее, например в свое время существала специальная книга в которой приводилась таблица, содержачая миллион случайных чисел. Сейчас же чаще всего использую т различные аппаратные схемы, температурные датчики, измерители шумов и т.п. Неплохая идея измерять временные интервалы между нажатиями клавиш на клавиатуре.  

Tornado

Смотря на сколько они у тебя должны быть случайны. Самый простой способ читать RTC и обрабатывать прочитаное значение какой то функцией чтоб расброс был побольше.
Metallica - моя, родная...

Вот он я, смотри Господи,
И ересь моя вся со мной.

fatal error

А если сделать бесконечный цикл в котором например в регистр кладется 1 прибавляется по 1 с каждым циклом.Как доходит до тысячи сбрасывается .Выход из цикла осуществляется нажатием кнопки к примеру "генерировать псевдослучайное число".

Sinferno

Стандартные генераторы, которые встроены в различные языки обычно это переодические функции с очень большим периодом. Где-то я прочитал алгоритм еще для Алгол60 и реализовал его на Си и Паскале. Но если это связано с шифрованием, например, то ГСЧ должен быть круче.
Для получения случайного значения можно использовать текещее время (не само, а преобразовывать это значение) или координаты курсора мыши.



По всем вопросам пишите по адресу gratispp@mail.ru