Эта проблема действительно сложна, если вам нужно ее обобщить (получите точную формулу).
Но в любом случае, позвольте мне объяснить алгоритм.
Если вы хотите знать
количество способов получить ровно 5
кости одинакового значения
Вы должны перефразировать вашу предыдущую проблему, как
рассчитать количество способов получить
ровно 5 кубиков со значением 3 И нет
другое значение может повторяться ровно 5
раз
Для простоты давайте назовем функцию F (20,8,5) (5 кубиков, все значения) первым ответом, а F (20,8,5,3) (5 кубиков, значение 3) вторым.
Мы имеем F (20,8,5) = F (20,8,5,3) * 8 + (события, когда более одного значения повторяется 5 раз)
Так что, если мы можем получить F (20,8,5,3), все должно быть довольно просто, не так ли?
Ну ... не так много ...
Сначала давайте определим некоторые переменные:
X1, X2, X3 ..., Xi, где Xi = количество раз, когда мы получаем кости i
Тогда:
F(20,8,5)/20^8 = P(X1=5 or X2=5 or ... or X8=5, with R=20(rolls) and N=8(dice number))
, P (утверждение) является стандартным способом записи вероятности.
мы продолжаем:
F(20,8,5,3)/20^8 = P(X3=5 and X1<>5 and ... and X8<>5, R=20, N=8)
F(20,8,5,3)/20^8 = 1 - P(X1=5 or X2=5 or X4=5 or X5=5 or X6=5 or X7=5 or X8=5, R=15, N=7)
F(20,8,5,3)/20^8 = 1 - F(15,7,5)/7^15
рекурсивно:
F(15,8,5) = F(15,7,5,1) * 7
P(X1=5 or X2=5 or X4=5 or X5=5 or X6=5 or X7=5 or X8=5, R=15, N=7) = P(X1=5 and X2<>5 and X4<>5 and .. and X8<>5. R=15, N=7) * 7
F(15,7,5,1)/7^15 = 1 - F(10,6,5)/6^10 F(10,6,5) = F(10,6,5,2) * 6
F(10,6,5,2)/6^10 = 1 - F(5,5,5)/5^5
F(5,5,5) = F(5,5,5,4) * 5
Ну тогда ... F (5,5,5,4) - это количество способов получить 5 кубиков со значением 4 в 5 бросках, например, ни один другой кубик не повторяется 5 раз. Есть только 1 выход из 5 ^ 5. Вероятность тогда составляет 1/5 ^ 5.
F (5,5,5) - это количество способов получить 5 кубиков любого значения (из 5 значений) за 5 бросков. Это очевидно 5. Вероятность тогда 5/5 ^ 5 = 1/5 ^ 4.
F (10,6,5,2) - это количество способов получить 5 кубиков со значением 2 в 10 бросках, например, ни один другой кубик не повторяется 5 раз.
F (10,6,5,2) = (1-F (5,5,5) / 5 ^ 5) * 6 ^ 10 = (1-1 / 5 ^ 4) * 6 ^ 10
Ну ... я думаю, что это может быть неправильно в какой-то части, но в любом случае, вы поняли идею. Я надеюсь, что смогу сделать алгоритм понятным.
редактирование:
Я сделал несколько проверок и понял, что вам нужно добавить несколько случаев, когда вы получаете более одного значения, повторенного ровно 5 раз. У тебя нет времени, чтобы решить эту часть, ты ...