@toolen

Как генерировать случайные числа в диапазоне по различным законам распределения?

Здравствуйте, коллеги!
Пишу генератор сетевого трафика, где размер генерируемых пакетов подчиняется одному из законов распределения, проблема в том, что размер должен колебаться от 42 до 508, а семплинг распределений может давать совершенно другие диапазоны. Есть ли какие-то методы для получения конкретного распределения в конкретном диапазоне значений ? Буду очень благодарен за ответы!
  • Вопрос задан
  • 2412 просмотров
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Один из чисто конкретных способов для дискретной случайной величины (покажу на примере 5 величин):
Пусть надо получить пять значений [A..E] с соотношениями вероятности 2:7:5:3:4.
1. Построим накопительную сумму вероятностей: 2:9:14:17:21
2. Поделим полученные значения на конечную сумму (21): 0.095:0.429:0.667:0.809:1
3. Сгенерируем псевдослучайную величину X в диапазоне [0:1) с равномерным распределением.
4. Пройдём по полученному массиву. Как только X станет меньше очередного элемента массива, мы получили нужный элемент.
Ответ написан
Комментировать
Spetros
@Spetros
IT-шник
проблема в том, что размер должен колебаться от 42 до 508

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

а семплинг распределений может давать совершенно другие диапазоны.

Очевидно, эти диапазоны нужно приводить к требуемому.

Есть ли какие-то методы для получения конкретного распределения в конкретном диапазоне значений ?

Да, при помощи математики один диапазон приводится к другому.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы