Случайное число с заданной вероятностью, какой алгоритм? Нужен алгоритм или хотя-бы предпосылка к нему
Цель:
задаётся от 0 до N чисел, N может быть 3-20
на выходе получаем случайное число в заданном диапазоне, при этом если сделать
1000 итераций, то получим что чисел лежащих ближе к 0 во много раз больше чисел которые лежат ближе к N.
к примеру от 0 до 8
то при 100или1000 итераций получим:
0 - 22%
1- 19%
2 - 16%
3 - 13%
4 - 10%
5 - 8%
6 - 6%
7 - 4%
8 - 2%
*числа примерные, только чтобы передать суть идеи

21 Авг 2019 в 06:07
183 +1
0
Ответы
1

Один из способов достичь такого распределения случайных чисел - использование обратного экспоненциального распределения вероятностей.

Алгоритм:

Задать параметр λ (лямбда), который будет влиять на формулу вероятности.Создать вероятностную функцию для всех чисел от 0 до N:
P(x) = C * e^(-λx)
где С - нормализующая константа, λ - параметр, x - значение числа в диапазоне от 0 до N.Нормализовать вероятности, чтобы их сумма была равна 1.Сгенерировать случайное число используя полученные вероятности.

Когда λ выбран таким образом, что близким к 0 числам соответствуют более высокие вероятности, а к N - более низкие вероятности, мы получаем желаемое распределение.

Важно экспериментировать с параметром λ для достижения желаемого распределения случайных чисел в диапазоне от 0 до N.

20 Апр 2024 в 13:23
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир