在C ++中查找序列中的第N个术语

时间:2013-04-15 17:48:53

标签: c++ algorithm math matrix recurrence

我发现了一个问题,你会得到这种类型的序列:

你有

  the first K terms : a1, a2, ... , ak; 
           K coefficients : b1, b2, ... , bk

并且再次发生:

S(i) = b1*S(i-K) + b2*S(i-K+1) + ... + bk*S(i-1). 

我必须找出第N个术语。

我相信这个问题可以通过快速矩阵求幂来解决,但我很难发现我必须使用的矩阵。我试图用C ++编写问题。任何人都可以给我一些关于如何处理这类问题的提示吗?

1 个答案:

答案 0 :(得分:1)

作为无耻的自我推销,我编码a program to solve linear recurrences using matrix multiplication。文件顶部的注释描述了您想要形成的矩阵,以及如何使用重复的平方算法来有效地计算重现的第n个项。

希望这有帮助!