【问题标题】:recurrence relation dependent inversly on n递归关系与 n 成反比
【发布时间】:2013-09-06 17:35:38
【问题描述】:

我最近学会了通过矩阵求幂找出第 n 个斐波那契数列。 但我被困在两个关系上:

1) F(n) = F(n−1) + n            
2) F(n) = F(n−1) + 1/n    

有没有什么有效的方法来解决这些问题 O(登录) 时间就像我们有矩阵博览会。斐波那契数列?

【问题讨论】:

标签: algorithm recurrence


【解决方案1】:

第一个显然等于:

F(n) = F(0) + n*(n+1)/2

并且可以在 O(1) 时间内计算。第二个,看here


假设您想使用矩阵求幂来计算第一个,就像使用斐波那契数列一样,这是您应该使用的矩阵:

    | 1 1 0 |
A = | 0 1 1 |
    | 0 0 1 |

如果考虑以下等式,矩阵的选择是显而易见的:

| F(n+1) |   | 1 1 0 |   | F(n) |
|  n+1   | = | 0 1 1 | * |  n   |
|   1    |   | 0 0 1 |   |  1   |

当然,起始向量必须是:(F(0), 0, 1)

对于第二个系列,这并不容易,因为您需要逐渐计算值1/n,而不能以这种方式线性计算。我想这是做不到的,但我不会试图证明这一点。

【讨论】:

  • 链接告诉你第二个有F(0)+H_n的解,其中H_n是第n次谐波数。但这并没有太大帮助,因为第 n 次谐波数正是我们正在查看的总和。我认为没有有用的公式。
  • 正如你指出的第一个递归,我想知道它是否也可以通过矩阵求幂来解决,如果不能解决,它可以解决哪些“类型”的递归关系。
  • 好的,假设您想尝试以与计算斐波那契相同的方式计算它们...我会在短时间内更新我的答案。
  • 链接声明 Psi(n)=log(Gamma(n)),所以 F(n) = log(n!)-log(1),这是不正确的。您可以通过对积分 $\int_0^1\frac{1-x^n}{1-x}\,dx$ 进行任意精度的数值计算来近似它,而无需遍历较大的 n 值。
【解决方案2】:

第一个可以用O(1)计算,因为这是一个算术级数,总和是n*(n-1)/2

第二个是harmonic series,无法高效计算,但可以在O(1)中近似:

第一个是0.57721566490153286060,第二个大约是1/(2k)

【讨论】:

    猜你喜欢
    • 2017-05-31
    • 2012-06-08
    • 2011-11-08
    • 1970-01-01
    • 2017-12-22
    • 1970-01-01
    • 1970-01-01
    • 2020-07-30
    • 2019-04-15
    相关资源
    最近更新 更多