划分和征服功能组合

时间:2015-12-30 08:07:04

标签: algorithm divide-and-conquer function-composition

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

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

如果是,请解释算法。

提前谢谢。

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

1 个答案:

答案 0 :(得分:3)

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

Intent in = new Intent(getActivity(), ActivityShowGallery.class);
            in.putExtra(ActivityShowGallery.Gallery, m);
            in.putExtra(ActivityShowGallery.position, 0);
            getActivity().startActivity(in);

对x应用f n次是将矩阵n次乘以(x,1),或等效地将提升的矩阵乘以n的幂乘以(x,1)。

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

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

无论你是以实数,整数还是以数M为模的整数,都可以工作。