累乗はモノイドに対して定義できる。
$a^{11} = a^{8 + 2 + 1}= a^8 a^2 a^1$ と考えて計算をする(指数の部分の2進展開をする)
$a$ の 2べき乗の部分は
と計算していく。
モノイドに一般化できる
$a^k$ の計算量は $O(\log k)$
(積が $O(1)$ で計算できるとする。)
$f: [N] \to [N]$ に対して前処理をすると、$k \leq K$ に対して $f^k (x)$ が高速に計算できる。ただし、$f^k$ は $f$ の $k$ 回合成とする。