Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Функция вероятностей


Автор: Kirill_2004_dcs 31.3.2008, 20:01
Добрый день! 
Я плохо помню курс теории вероятностей, но подскажите, пожалуйста, где рыть, чтоб решить такую задачу.

Есть несколько групп элементов. У каждой группы - свой вес. В каждой группе - сколько-нибудь элементов.

Нужно математически составить ф-ю, которая будет получать индекс конкретного элемента, но в итоге, чтобы элементы внутри группы появлялись с равной вероятностью, но элементы групп с меньшем весом появлялись реже элементов групп с большим.

Спасибо!

Автор: nworm 1.4.2008, 23:14
Несовсем понятно, что здесь аргумегнт, и что - фунция.
Допустим есть группы

первая (вес 1)
А Б В Г

вторая (вес 2)
Д Ж З

третья (вес 3)
И К Л

Функция получает индекс, то есть надо уметь считать f(А), f(Б) и т.д.
Но тогда причём здесь "элементы групп с меньшем весом появлялись реже элементов групп с большим".

Автор: Akina 1.4.2008, 23:25
Если у каждой группы свой вес, а веса элементов группы одинаковы, при этом количество групп и элементов в каждой из нихъ известны, можно объединить все это барахло в одну группу, где (вес элемента) = (вес группы, в которой он был) / (количество элементов в его группе), после чего выбирать из этой кучи на основе равномерного распределения.

Или сперва выбирать группу на основе весов групп, а потом равномерно выгребать из нее элемент.

Впрочем, первый способ, конечно, программно реализуется "наоборот", т.е. по второй схеме, но делением случайного числа на две части.

Автор: Kirill_2004_dcs 3.4.2008, 00:54
Функция ничего не получает. Она выбирает.

2Akina:
Я приблизительно понимаю, что так нужно сделать, но можно или примерчик, или где рыть... Понимаю, что наглею и ленюсь, но ооочень буду признателен.

Спасибо.

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