![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Ccoder |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 188 Регистрация: 15.2.2011 Репутация: нет Всего: нет |
Здравствуйте.
Столкнулся со следующим непростым случаем. Есть массив состоящий из n элементов вероятностей. Сумма которых равна 1. Например есть следующий массив
Нужно сделать функцию которая случайным образом выбирала-бы элемент (возвращала-бы его индекс) с учётом вероятности этого элемента. Кто-нибудь сталкивался? Это сообщение отредактировал(а) Ccoder - 21.3.2011, 22:46 |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Если я правильно понимаю, нужно получить случайное значение для заданной функции распределения.
Может так в Гугле и поискать "получить значение по заданной функции распределения вероятности" Вот например учебник - http://ermak.cs.nstu.ru/mmsa/glava3/glava3_3.htm |
|||
|
||||
Temdegon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 429 Регистрация: 11.10.2008 Где: Minsk Репутация: 7 Всего: 9 |
Придумалось вот так:
определяем для каждого элемента массива его интервалы: 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, определяем в какой интервал оно вошло, ну и берем соответствующий элемент Математику уж забыл, не помню как скобки на интервалах ставятся... Это сообщение отредактировал(а) Temdegon - 22.3.2011, 13:43 |
|||
|
||||
Ccoder |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 188 Регистрация: 15.2.2011 Репутация: нет Всего: нет |
Это само, извините что словами не написал. (галочку только поставил)
Я пришел к такому-же самому решению что и Temdegon. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |