Обновить

Найти вероятность выпадения k (сумма выпавших значений) при бросании n кубиков (часть 2 из 2)

Время на прочтение27 мин
Охват и читатели4.7K
Всего голосов 3: ↑2 и ↓1+1
Комментарии2

Комментарии 2

Ну вот свёртка - это ровно то самое умножение полиномов, заданных коэффициентами.
А дальше - всё, что тут расписано, - это возведение в степень.
С помощью рекурсивной формулы:

x^2n = (x^2)^n
x^(2n+1) = x^2n * x

которая выворачивается в цикл

def power(x, n, op):
    assert n > 0
    y = x  # не будем вводить нейтральный элемент группы
    n -= 1
    while n:
        if n % 2:
            y = op(y, x)
            n -= 1
        if n:
            x = op(x, x)
            n //= 2
    return y

(вроде бы не накосячил)

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации