Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Случайный элемент по массиву вероятностей 
V
    Опции темы
Ccoder
  Дата 21.3.2011, 22:40 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 188
Регистрация: 15.2.2011

Репутация: нет
Всего: нет



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

0.25
0.25
0.25
0.125
0.125

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

Это сообщение отредактировал(а) Ccoder - 21.3.2011, 22:46
PM MAIL   Вверх
AntonSaburov
Дата 22.3.2011, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 51
Всего: 118



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

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

Вот например учебник - http://ermak.cs.nstu.ru/mmsa/glava3/glava3_3.htm
PM MAIL WWW ICQ   Вверх
Temdegon
Дата 22.3.2011, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 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
PM MAIL   Вверх
Ccoder
Дата 22.3.2011, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 188
Регистрация: 15.2.2011

Репутация: нет
Всего: нет



Это само, извините что словами не написал. (галочку только поставил)
Я пришел к такому-же самому решению что и Temdegon.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0605 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.