【问题标题】:F(n) = F(n-1) - F(n-2)F(n) = F(n-1) - F(n-2)
【发布时间】:2015-08-13 11:25:14
【问题描述】:

我在一次编程比赛中遇到了这个序列 F(n)= F(n-1)-F(n-2); 给定 F0 和 F1 找到第 n 项

(http://codeforces.com/contest/450/problem/B)(比赛结束)

现在这个问题的解决方法是这样的 该序列取值 f0, f1, f1-f0, -f0, -f1, f0 - f1 然后再取 f0 并重复整个序列。

我知道这个值是重复的,但找不到这个循环顺序的原因。我搜索了循环顺序和序列,但找不到足够的材料来给出循环的实际感觉。

【问题讨论】:

  • 你的意思是写 F(n) = F(n-1) - F(n-2)?
  • 标题、原始内容和新内容均不符合链接中提供的公式。
  • @DavidDubois 是 F(n) = F( n-1 ) - F(n - 2) 对于所有 n>=2 否则它会给出两个可以是任意两个整数的值来开始序列
  • 你的数学是正确的。如您所描述的,序列循环。 “给出原因的实际感觉”是什么意思?你认为什么会回答关于“感觉”的问题?
  • 感觉我的意思是序列重复的原因。术语之间的差异也在重复。我只是想要一些解释(如果有的话),然后只是以 F0 和 F1 的形式记下所有术语并查看结果。

标签: math sequence discrete-mathematics cyclic


【解决方案1】:

解决此问题的另一种方法。请注意,F(n) = F(n - 1) - F(n - 2) 与 F(n) - F(n - 1) + F(n - 2) = 0 相同,这使其成为线性差异方程。此类方程具有基本解 a^n,其中 a 是多项式的根:假设 F(n) = a^n,则 a^n - a^(n - 1) + a^(n - 2) = (a ^2 - a + 1)*a^(n - 2) = 0,所以 a^2 - a + 1 = 0 有两个复数根(你可以找到它们),其模数为 1,参数为 pi/3。所以它们的幂 1, a, a^2, a^3, ... 绕单位圆运动,经过 2 pi/(pi/3) = 6 步后返回 1。

这种分析与微分方程的相应分析具有相同的缺陷——你怎么知道要寻找某种解?我没有答案,也许别人有。同时,每当您看到线性差分方程时,请考虑 a^n 形式的解。

【讨论】:

  • 非常漂亮的插图,明天我的每日限制40票更新后会投票。 :)
  • 感谢您的帮助,我从以下链接中阅读。我不知道为什么用 a^n 代替 F[n],可能是因为一些微分方程,或者可能是因为递归关系以指数速率增加,或者可能是试验。现在忽略这个事实,我们可以像您在此处所做的那样找到递归方程的解。我还观察到有三个数字 F[0]、F[1]、F[1]-F[0] 和负数(180 度旋转)在重复。你能解释一下这个方程的根与实际解的关系吗link
  • 我的意思是方程的解给出了两个相距 60 度且很复杂的根,但每个根与重复的 6 个值中的每一个的关系如何。
  • @Grind 设 a1、a2 为根。那么解是一个线性组合F(n) = c1*a1^n + c2*a2^n。给定 F0 = F(0) 和 F1 = F(1),您可以通过求解 F0 = c1 + c2 和 F1 = c1*a1 + c2*a2 找到常数 c1、c2。当我这样做时,我得到:c1 = (2*sqrt(3)*%i*F1 + (3-sqrt(3)*%i)*F0)/6, c2 = -(2*sqrt(3)*%i*F1 + (-sqrt(3)*%i-3)*F0)/6(我正在使用Maxima)。然后您可以从中计算 F(2)、F(3)、F(4)。你会发现虚部抵消了,所以如果 F0 和 F1 是实数,则 F(n) 是实数。
  • 虽然这在理论上是 100% 正确的,但在实践中,这些竞赛通常会提供输入约束,使得浮点舍入误差太大而无法使用此公式。有一个通用的 log(n) 解决方案,它使用矩阵求幂和仅整数运算。
【解决方案2】:

如果将原始公式应用于 n-1

F(n -1) = F(n-2) - F(n -3) 

如果我在原来的 F(n) 表达式中替换 F(n-1)

F(n) = F(n-2) - F(n -3) - F(n-2) = -F(n - 3)
F(n) = - F(n-3)

如果我将 n 替换为 n-3,则后者也有效

F(n - 3) = - F(n -6)

结合最后两个

F(n) = -(-F(n-6)) = F(n-6)

因此序列是循环的,周期为六

【讨论】:

  • 这是合乎逻辑且恰当的解释。
猜你喜欢
  • 2015-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-06
  • 1970-01-01
  • 2012-04-13
  • 2012-12-11
  • 2018-10-29
相关资源
最近更新 更多