Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Алгоритмы > Функция вероятностей |
Автор: 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: Я приблизительно понимаю, что так нужно сделать, но можно или примерчик, или где рыть... Понимаю, что наглею и ленюсь, но ооочень буду признателен. Спасибо. |