Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.19;
Скачать: CL | DM;

Вниз

Как проверить генератор случайных чисел   Найти похожие ветки 

 
Multy   (2004-09-07 10:30) [0]

Есть программа которая в процессе работы использует встроенный генератор случайных чисел как проверить, что он действительно случайный.
По институту помню были какие то методы...


 
Digitman ©   (2004-09-07 10:35) [1]


> как проверить, что он действительно случайный


"В этом мире случайностей нет.."(с) МВ


 
TUser ©   (2004-09-07 10:37) [2]

Он не случайный. Он псевдослучайный. Но ты можешь проверить получаемую послеждовтаельность чисел на соотвествие предъявляемым требованиям, например равномерность распределения и пр.


 
Боян Георгиев   (2004-09-07 10:41) [3]

Можно проверить так:
Выполни Random(1000) 1000 разов и считай числа в 10 интервалам (1..100, 101..200, ..., 901..1000) и если счет в десетях интервалов равной, то генератор действительно случайный.


 
Digitman ©   (2004-09-07 10:42) [4]


> Multy


если тебе необходимо виз.представление распределения, то организуй 2-мерный integer-массив, в котором № элемента - это "случайное" число в диапазоне, не превышающем границы массива, а значение этого эл-та массива ты будешь увеличивать на 1-цу всякий раз, когда генератор выдаст очер.число, совпадающее с номером этого элемента

в цикле "от забора и до обеда" получай "случйное" число, ищи соотв.элемент массива и инкрементируй найденный элемент

после завершения цикла любым удобным способом визуализируй массив в виде столбчатого графика, где по оси Х - "случайные" числа, а по оси Y - кол-ва "выпадений" каждого из этих чисел


 
Multy   (2004-09-07 10:45) [5]

Ну и что из того, что псевдослучайный?
А проверить точно можно, хотябы примитивныой статистикой,
но на сколько я помню, есть конкретные методы с критериями и т.д.


 
TUser ©   (2004-09-07 10:48) [6]

Я бы сказал, что распределение получаемого ряда чисел д.б. равномерным, а также равномерным д.б. распределение разниц между двумя последовательно полученными числами (некоторая гарантия независимости ряда, хотя, насколько я понимаю, все подобные ряды марковские и в той или иной степени каждое число зависит от предыдущего). Равномерность распределения проверяют по хи-квадрату.


 
Jeer ©   (2004-09-07 10:57) [7]

Поищи описание тестов DIEHARD. Это стандарт на сегодня для проверки "случайности" генераторов.


 
Рамиль ©   (2004-09-07 11:25) [8]

А с чего это распределение должно быть равномерным? Оно у Random равномерно. А программа может генерировать для себя любое распределение. Равномерность не может быть критерием случайности.


 
lehich ©   (2004-09-07 11:30) [9]

initialization
randomize;

????????? может так????


 
Jeer ©   (2004-09-07 11:32) [10]

В основе методов генерации "случайных" последовательностей с заданным распределением лежат, как правило" генераторы с равномерным распределением.
Если не оттестирован равномерный, то тестировать производный сложнее, да и неверно.


 
Romkin ©   (2004-09-07 11:37) [11]

Критериев полно. Возьми второй том Кнута, посмотри. Там они описаны. Но проверять генератор надо не на все критерии, а на нужные. А для этого надо знать, для чего нужен программе этот генератор. Одно дело - колоду карт перемешать, другое - найти методом Монте-Карло значение кратного интеграла. Во втором случае, кстати, прове6рка проще :)
А код генератора есть?


 
Koala ©   (2004-09-07 11:48) [12]

Не знаю точное условие задачи применения случайных чисел, но в клиент-банках (точно не скажу как) используется генератор случайных чисел совместно с движением мыши по экрану, генератор задает интервал при котором считываются координаты экрана и это более вероятность получения массива случайных чисел.



Страницы: 1 вся ветка

Текущий архив: 2004.09.19;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.057 c
14-1093691737
ИМХО
2004-08-28 15:15
2004.09.19
А где ветка про футбол?


1-1094114684
UserUserov
2004-09-02 12:44
2004.09.19
TProgressBar - Считывание файла


4-1091455570
kingdom
2004-08-02 18:06
2004.09.19
GDI vs DirectDraw


4-1090818969
alex_bf
2004-07-26 09:16
2004.09.19
Замерить время между нажатиями клавиш с наибольшей точностью?


4-1091630143
rams
2004-08-04 18:35
2004.09.19
как программно выключить компьютер