Форум: "Основная";
Текущий архив: 2004.09.19;
Скачать: [xml.tar.bz2];
ВнизКак проверить генератор случайных чисел Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.033 c