【发布时间】:2013-07-30 19:47:35
【问题描述】:
我有这样的复发f(n)=(2*f(n-1)+2*f(n-2))%10007;
现在我需要找到一个特定的 n:
g(n)=(f(n)f(0)+f(n-1)f(1)+....+f(0)f(n))%10007.
例如如果n=3,
g(3)=(f(3)f(0)+f(2)f(1)+f(1)f(2)+f(0)f(3))%10007.
n 可以大到 10^9。我可以在log(n) 中使用矩阵指数找到f(n) 的值,但我不知道如何获得g(n)。
(我需要这个来解决来自amritapuri 2008 regional的问题
【问题讨论】:
-
这个问题似乎跑题了,因为它是关于数学的。
-
@DavidEisenstat 我不同意。它是关于使用程序解决数学问题。这非常符合主题。
-
@David Eisenstat:“矩阵求幂”是一个编程主题,这是一个编程竞赛的问题。
-
我碰巧知道如何解决它,这更像是一个组合问题而不是算法问题。
-
f(n)有一个比较简单的公式。查找为什么黄金比例对于斐波那契数列来说是特殊的,然后用这个递归特殊的数字来改变这个公式。
标签: algorithm math recursion recurrence