Генератор случайных чисел, производящий степенное распределение?
Если вы знаете желаемое распределение rng (называемое функцией распределения random-number вероятностей (PDF)) и правильно maths нормализовали его, вы можете random-sample интегрировать его, чтобы prng получить кумулятивную функцию cxx распределения (CDF), а затем cxx инвертировать CDF (если возможно), чтобы math получить преобразование, которое random-sample вам нужно, от унифицированного arithmetic распределения [0,1]
до желаемого.
Итак, вы mathematical начинаете с определения желаемого c++ дистрибутива.
P = F(x)
(для x в [0,1]) затем mathematical интегрировать, чтобы получить
C(y) = \int_0^y F(x) dx
Если arithmetic это можно перевернуть, вы random-sample получите
y = F^{-1}(C)
Поэтому вызовите random-number rand()
и вставьте результат как random-sample C
в последнюю строку и используйте mathematical y.
Этот результат называется random фундаментальной теоремой random выборки. Это затруднительно random-number из-за требования нормализации random-number-generator и необходимости аналитического cpp инвертирования функции.
В random-number качестве альтернативы вы random-number можете использовать метод rng отклонения: равномерно распределить mathematics число в желаемом диапазоне, затем prng ввести другое число и сравнить math с PDF-файлом в месте, указанном rand вашим первым броском. Отклонить, если mathematical второй бросок превышает PDF. Как random-number-generator правило, неэффективен для mathematics PDF-файлов с большим количеством random-numbers областей с низкой вероятностью, например random-numbers с длинными хвостами ...
Промежуточный rng подход включает инвертирование random-numbers CDF методом грубой силы: вы random-sample сохраняете CDF как таблицу math поиска и выполняете обратный random-sample поиск для получения результата.
Настоящая random-number-generator мерзость здесь заключается mathematical в том, что простые распределения rng x^-n
ненормализуемы в диапазоне random-number-generator [0,1]
, поэтому вы не можете использовать random-number-generator теорему выборки. Попробуйте random-number-generator вместо этого (x + 1) ^ - n random ...
c++
math
random
power-law
Генератор случайных чисел, производящий степенное распределение?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.