2010-12-07 2 views
0

Я создаю набор элементов, и каждый из них подсчитываю его количество вхождений в образец. Позже я хочу выбрать случай случайным образом, но я хочу, чтобы любой конкретный элемент мог быть равен количеству вхождений по сравнению с общим количеством всех элементов всех предметов.статистический/взвешенный/вероятностный выбор случайного элемента

Я считаю, что нашел хорошее решение, но меня интересует, какой стандартный термин для этой концепции и каковы стандартные методы ее достижения.

+2

Много дубликатов: Самое раннее, что я знаю о [Как создать точки, соответствующие гистограмме? ] (http://stackoverflow.com/questions/423006/), но связанный с ним столбец по вашему вопросу имеет еще несколько [C: выбор случайного элемента на основе вероятностей] (http://stackoverflow.com/questions/2772882 /) и [Генерировать случайные числа с вероятностным распределением] (http://stackoverflow.com/questions/3109670/) [Отрегулировать вероятность выбора элементов из списка] (http://stackoverflow.com/questions/1589321/) [как реализовать неравномерное распределение вероятностей?] (http://stackoverflow.com/questions/3094873/) – dmckee 2010-12-07 06:50:18

ответ

1

У этого нет собственного имени, но это важный шаг в обновлении ваших убеждений на основе доказательств в течение ЧАСТИЦЫ ФИЛЬТРАЦИИ, который, вероятно, является термином, который вы ищете.

Выберите случайное число (r) от 0 до n-1 (n - общее количество вхождений всех элементов). Затем перебираем каждый элемент и вычитаем количество вхождений из r. Когда вы окажетесь ниже нуля, выберите последний элемент. Обратите внимание, что не важно группировать один и тот же элемент в одном и том же месте. У вас могут быть повторы, и это все равно будет работать.

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

Смежные вопросы