我知道这更像是一个复杂性理论问题,而不是一个编程问题,希望我在这里没有做错事情,如果是错误的地方,我很抱歉,但我希望你们中的某个人有答案。它甚至在某种程度上与编程相关,因为它是一个复杂性理论问题。
我正在研究线性循环序列,我读到为了获得它弹出的序列的第 n 个值,你需要获得一些伴随矩阵的幂,我想知道是否有已知的算法来获得幂这种矩阵的快速方式..
我无法给出编码示例,但我会尝试为您提供更多解释:
k阶齐次线性循环序列:
s(n+k)=a(k-1)s(n+k-1)+a(k-2)s(n+k-2)+... +a(0)
for n=0,1,.. 其中 s(i) 是序列的第 i 个值,a(i) 是代数域中的系数。
A 是上述序列的伴随矩阵,如果它是:
( 0 0 0 0 ... 0 a(0) )
( 1 0 0 0 ... 0 a(1) )
( 0 1 0 0 ... 0 a (2) )
( .. .. .. .. .. .. .. .. ..)
( 0 0 0 0 ... 1 a(k-1) )
此外,理论指出,对于我们有序列:
s(n) = s(0)A^n for n=0,1,..
就是这样,感谢您的帮助。