Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Алгоритмы > идеальный random |
Автор: szz 3.12.2005, 02:29 | ||||||||
У меня такая загвоздка. Сделал я такой тренажер интуиции (можно его тут попробовать http://xkiosk.net/pea/game.php ) Зайдите туда, посмотрите чтоб дальше понять о чем я говорю. Так вот, загвоздка в том, чтобы сделать идеальный генератор случайных чисел, точнее такой генератор, который бы выводил всего два рандомальных числа : 0 и 1. Чтоб идиализировать этот генератор, я делаю в той программе следующее: перед началом тренировки заставляю пользователя двигать мышью по экрану, а сам собираю координаты его движения в массив. Каждая точка, по которой бегал хаотично человек по экрану, собирается в массив длиной в тыщу элементов. А потом для сброса черных и белых горошин использую следующую функцию (простите за привидение кода, напишу я ее на нескольких языках, чтоб как мжно большему количеству людей понятно было): generated_impulse - в нашем случае - массив из тех самых 1000 элементов:
То есть как можно сильнее запутываю: генерирую случайное число, прибавляю к нему случайный элемент из пользоватеьского импульса и возвращаю остаток на два. Только вот почему в большинстве случаев выпадает черная горошина (0) ? Единственное, чего я пытаюсь добиться - это убиение закономерности стандартной псевдорандомальности, а у меня почему-то к нулю больше тянет... |
Автор: cardinal 3.12.2005, 03:01 |
Посмотри тут: http://vingrad.ru/VB-VB-002236 и тут http://forum.vingrad.ru/index.php?showtopic=40164&view=findpost&p=308153 если дисскусию почитать хочешь... |
Автор: esperant0 3.12.2005, 12:38 |
определи вначале понятие идеальный рандом формално, и быть может тебе смогут помочь как правило правильный вопрос это половина ответа |
Автор: nworm 3.12.2005, 16:58 |
szz, Вы где-то ошибаетесь. По датчикам случайных чисел много всего написано. Например, можно посмотреть начало 2-го тома книге Д. Кнута "Искусство программирования". |
Автор: maxim1000 3.12.2005, 17:17 |
усложнение генератора случайных чисел далеко не всегда ведет к улучшению его характеристик, зато почти всегда ведет к тому, что исследовать его и целенаправлено модифицировать становится все труднее... есть движения мышки, в их числах может быть некоторая закономерность (мало ли, с какой точностью драйвер меряет положение мышки?) есть стандартный генератор случайных чисел, который тоже имеет свои закономерности (какие именно, зависит от реализации) эти две системы объединяются в одну, где их закономерности переплетаются самым причудливым образом, и в конце вылазит большой перекос в сторону черных горошин поому я бы посоветовал просто взять один из изученных генераторов (на форуме обсуждалось) или придумать свой и исследовать его характеристики (ну это, если нравится сам процесс ![]() |
Автор: Helicopterr 16.2.2006, 03:33 |
szz Вот уж не знаю кто первый придумал заставлять пользователя двигать по экрану мышей и тыкать по клавиатуре для генерации случайных значений, но сейчас это делает, например, клиентская прога Web Money. Как ещё не заставили пользователя болтать ногами, ерзать на стуле, бится головой в разные участки монитора, этим, ведь похоже, можно повысить рандомальность... ![]() Ты писал о "разработке" идеального рандома? Вообще я иногда думаю, что наш бог/природа и тот на генерирование по-настоящему случайных чисел не способен. Так что ты без всяких угрызений совести можешь заняться заботами более мирскими и насущными ![]() |
Автор: szz 16.2.2006, 12:47 | ||
Судя по тому, что ты написал ответ через 2 месяца после того, как к этой тебе все потеряли интерес, я уже как раз все это время и занимаюсь более мирскими и насущными заботами. В любом случае, большое спасибо за мораль. |
Автор: teplotaya 14.3.2006, 18:41 |
szz чувак спасибо крутая маза а дай мне исходники пажалусто ? |
Автор: teplotaya 16.3.2006, 08:09 | ||
машина на машину ;) |
Автор: szz 16.3.2006, 08:15 |
Ой, не напоминай - я исходники случайно все стер при переустановке винды нескоко месяцев назад... |