Думается, что для
программистов более подходит такой путь решения:
1) Обозначим через P(m,n) вероятность того, что при m бросаниях кости выпадет ровно n очков. Положим P(m,n) = 0 если m либо n меньше 1.
2) Очевидно, P(m,n) = 0 при m > n и при 6m < n, P(1,1)=P(1,2)=...=P(1,6)=1/6.
3) Также вполне очевидна рекуррентная формула:
.
Пользуясь ею, удобно заносить значения P(m,n) по мере вычисления в двумерный массив размерностью NxN.
4) Дальше всё, как у
maxalа
здесь, только все вычисления проводятся с плавающей точкой. Тут, правда, получается
как по времени, так и по памяти, зато можно обойтись без глубокого знания математики