Как стать автором
Обновить

Комментарии 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

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

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

Публикации

Истории