函数组合的分而治之

Divide and conquer for function compositions

我正在搜索用于在 O(log n) 时间内找到 2 个线性函数的组合的算法 n 次(其中 n 可以大到 10^18)。我刚得到一个 pdf,其中包含使用分而治之算法的 2 个大度数函数的多项式组合。

我想知道我的n次线性函数组合问题是否也可以使用O(log n)复杂度的分而治之算法来解决?

如果是,请说明算法。

提前致谢。

编辑 1: 函数 f(x) n 次的组合是 fofof...n 次。这里的函数要自己组合 n 次。没有2个函数。

您可以将线性函数 f(x) = ax + b 的应用表示为 2×2 矩阵乘以向量 (x, 1)。

(f(x)) = ( a b ) (x)
( 1  )   ( 0 1 ) (1)

将 f n 次应用于 x 是将矩阵 n 次乘以 (x, 1),或者等价地,将矩阵的 n 次方乘以 (x, 1)。

(f^n(x)) = ( a b )^n (x)
(  1   )   ( 0 1 )   (1)

您可以通过平方求幂来计算矩阵幂。

无论您是处理实数、整数还是对某个数 M 取模的整数,这都适用。