#algorithm #hashmap #percentage
Вопрос:
Мне нужна помощь в определении процентной вероятности того, что элемент должен быть выбран моим алгоритмом. По сути, я создал хэш-карту различных элементов, а затем добавил целое число в качестве значения, чтобы уменьшить вероятность появления некоторых элементов. Мой алгоритм работает следующим образом: генерируется случайное число в диапазоне от 0 до размера карты. Затем он бросит еще одно случайное число между 1 и тем, что выбранным элементам присвоено значение. Если это значение совпадает с откатанным числом, оно будет добавлено в массив. Также имейте в виду, что этот алгоритм выбирает 3 элемента из карты, и все 3 должны отличаться, так какова процентная вероятность того, что каждый элемент будет выбран? Очевидно, вам нужно было бы знать, сколько существует предметов и связанные с каждым из них значения, но я могу сделать это самостоятельно, я просто хочу знать общий процесс поиска этих процентов. Кроме того, после того, как я выясню процент появления каждого элемента в конечном наборе из 3 предметов, мне также нужно принять во внимание, что у этих 3 предметов есть только 40% шансов появиться вообще.
Первый шаг-определить процентную вероятность того, что каждый элемент появится в последних 3, а последний шаг-определить вероятность того, что эти последние 3 элемента вообще появятся. Я думал, что мог бы разделить 3 на общий размер карт (например, 20), что дало бы мне 15% — ную вероятность приземления на каждый элемент, прежде чем принимать во внимание их присвоенные значения на карте, но куда мне идти оттуда, потому что я как бы теряюсь со всеми этими различными вещами, которые мне нужно учитывать.
Комментарии:
1. Я думаю, нам нужно увидеть код или, по крайней мере, псевдокод для алгоритма.
2. Если я правильно понимаю процесс, то, что вы делаете, это случайным образом выбираете один из N предметов, а затем даете этому предмету один шанс из V быть выбранным в топ-3. Это эквивалентно присвоению веса каждому элементу и выбору элемента с использованием взвешенной вероятности. Вес для элемента является наименьшим общим кратным из всех значений, деленных на значение для элемента. Например, если значения элементов {1,2,3,4,5}, то веса элементов {60,30,20,15,12}. Использование весов облегчает математический анализ и приводит к более быстрому кодированию (особенно если значения большие).
3. Откуда у тебя эти гири? Кроме того, ваше понимание того, о чем я спрашиваю, правильное, хотя оно касалось лишь небольшой части вопроса.
4. Сначала вычислите наименьшее общее кратное (LCM) из значений, затем для каждого элемента вес равен LCM / значению. Например, если у вас есть 10 элементов со значениями {1,2,2,3,3,3,4,4,5,5}, то LCM значений равно 60 (все значения делятся равномерно на 60). Затем преобразуйте значения в веса с помощью формулы
W = LCM / V
. Таким образом, веса {60,30,30,20,20,20,20,15,15,12,12}5. Что означает вес, потому что не имеет смысла, чтобы предметы с наименьшими значениями также имели наибольший вес. Я думаю, что я просто не понимаю, чего вы пытаетесь достичь с помощью этих восьми, так как они не складываются на 100%.