Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Случайный элемент по массиву вероятностей


Автор: Ccoder 21.3.2011, 22:40
Здравствуйте.
Столкнулся со следующим непростым случаем.
Есть массив состоящий из n элементов вероятностей. Сумма которых равна 1.
Например есть следующий массив
Цитата

0.25
0.25
0.25
0.125
0.125

Нужно сделать функцию которая случайным образом выбирала-бы элемент (возвращала-бы его индекс) с учётом вероятности этого элемента.
Кто-нибудь сталкивался?

Автор: AntonSaburov 22.3.2011, 13:21
Если я правильно понимаю, нужно получить случайное значение для заданной функции распределения.

Может так в Гугле и поискать "получить значение по заданной функции распределения вероятности"

Вот например учебник - http://ermak.cs.nstu.ru/mmsa/glava3/glava3_3.htm

Автор: Temdegon 22.3.2011, 13:42
Придумалось вот так:
определяем для каждого элемента массива его интервалы:
1-й элемент - (0 - 0,25]
2-й - (0,25 - 0,5]
3-й  (0,5 - 0,75]
4-й (0,75 - 0,875]
5-й (0,875 - 1]
дальше берем рандомное float число от 0 до 1, определяем в какой интервал оно вошло, ну и берем соответствующий элемент
Математику уж забыл, не помню как скобки на интервалах ставятся...

Автор: Ccoder 22.3.2011, 21:16
Это само, извините что словами не написал. (галочку только поставил)
Я пришел к такому-же самому решению что и Temdegon.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)