Случайное число с заданной вероятностью, какой алгоритм? Нужен алгоритм или хотя-бы предпосылка к нему
Цель:
задаётся от 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
167 +1
0
Ответы
1

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

Алгоритм:

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

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

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

20 Апр в 13:23
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 548 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир