Главная страница
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.054 c
1-1094397791
Забывший
2004-09-05 19:23
2004.09.19
Как по OnMouseDown чего-либо (панели, к примеру) инциировать...


14-1093940607
DSKalugin
2004-08-31 12:23
2004.09.19
Что за расширение "*.nco"?


1-1094387863
pavelgr
2004-09-05 16:37
2004.09.19
tmemo


6-1089213748
BVV
2004-07-07 19:22
2004.09.19
роутинг (route add, route delete)


1-1093847342
Mitrofan
2004-08-30 10:29
2004.09.19
Создание меню из дерева