Генератор псевдослучайных чисел
- 1 year ago
- 0
- 0
Выборка псевдослучайных чисел — это практика генерации псевдослучайных чисел , распределенных согласно заданному вероятностному распределению . Базируется на численных методах .
Методы выборки, основанные на неравномерном распределении, обычно используют способность генератора псевдослучайных чисел порождать числа X , которые распределены равномерно . Затем применяется вычислительный алгоритм, который в результате манипуляций со случайной величиной X возвращает случайную величину Y , значения которой удовлетворяют заданному распределению.
Для дискретного распределения с конечным числом n значений случайной величины, в которых функция вероятности f принимает значения, отличные от нуля, базовый алгоритм выборки довольно прост. Интервал [0, 1) делится на n интервалов [0, f (1)), [ f (1), f (1) + f (2)), … Длина интервала i равняется вероятности f ( i ). Предположим, кому-то дано равномерно распределенное число X , которому ставится в соответствие индекс i соответствующего интервала. Таким образом определенный индекс i будет иметь распределение f ( i ).
Формализовать сказанную мысль просто, используя (кумулятивную) функцию распределения
Удобно задать F (0) = 0. Тогда n интервалов будут иметь вид [ F (0), F (1)), [ F (1), F (2)), …, [ F ( n − 1), F ( n )). И тогда главной вычислительной задачей становится поиск такого i , для которого выполняется F ( i − 1) ≤ X < F ( i ).
Поиск может быть произведен различными алгоритмами, например:
Общие методы генерации независимых выборок:
Общие методы генерации коррелированных выборок (часто необходимы, например, в случае многомерных распределений):
Для генерации согласно нормальному распределению :
GNU Scientific Library имеет раздел, озаглавленный «Random Number Distributions» (Распределения случайных чисел) с процедурами выборки согласно более чем двадцати различных распределений.