我发现了一个给您这种类型的序列的问题:

你有

  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++编写问题。谁能给我一些有关如何处理此类问题的提示?

最佳答案

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

希望这可以帮助!

关于c++ - 在C++中找到序列中的第N个术语,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16021545/

10-11 21:57