Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: Общие вопросы > Случайный элемент по массиву вероятностей |
Автор: Ccoder 21.3.2011, 22:40 | ||
Здравствуйте. Столкнулся со следующим непростым случаем. Есть массив состоящий из n элементов вероятностей. Сумма которых равна 1. Например есть следующий массив
Нужно сделать функцию которая случайным образом выбирала-бы элемент (возвращала-бы его индекс) с учётом вероятности этого элемента. Кто-нибудь сталкивался? |
Автор: 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. |