Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Math F(n)=F(n-1)-F(n-2)_Math_Sequence_Discrete Mathematics_Cyclic - Fatal编程技术网

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

Math F(n)=F(n-1)-F(n-2),math,sequence,discrete-mathematics,cyclic,Math,Sequence,Discrete Mathematics,Cyclic,我在一次编程竞赛中遇到了这个序列 F(n)=F(n-1)-F(n-2); 给定F0和F1,求第n项 ()(比赛结束了) 现在这个问题的解决方法是这样的 序列取值f0,f1,f1-f0,-f0,-f1,f0-f1,然后再次取值f0,重复整个序列 我发现这个值正在重复,但找不到这个循环顺序的原因。我搜索了循环顺序和序列,但找不到足够的材料,无法给出循环原因的实际感觉。如果应用原始公式计算n-1 F(n -1) = F(n-2) - F(n -3) 如果我替换原始F(n)表达式中的F(n-1) F

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

()(比赛结束了)

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


我发现这个值正在重复,但找不到这个循环顺序的原因。我搜索了循环顺序和序列,但找不到足够的材料,无法给出循环原因的实际感觉。

如果应用原始公式计算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-3替换n,后者也有效

F(n - 3) = - F(n -6)
结合最后两个

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

因此,序列是周期性的,周期为六个

这是解决这个问题的另一种方法。注意,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π/(π/3)=6步后返回1


这种分析与相应的微分方程分析有同样的缺陷——你怎么知道寻找某种解呢?我没有答案,也许其他人有。同时,每当你看到一个线性差分方程时,想想a^n形式的解。

你的意思是写F(n)=F(n-1)-F(n-2)?标题、原始内容和新内容都与链接中提供的方程不匹配。@davidubois Yes F(n)=F(n-1)-F(n-2)对于所有的n>=2,它被赋予两个值,可以是任意两个整数,以开始序列。您的数学是正确的。序列循环如您所述。你所说的“给理由以真实的感觉”是什么意思?你期待什么来回答关于“感觉”的问题?我所说的感觉是指为什么序列是重复的原因。两个术语之间的差异也在重复。我只是想得到一些解释(如果有的话),然后以F0和F1的形式记下所有术语,然后看看结果。这是一个逻辑和恰当的解释。非常漂亮的插图,将在我的每日40票限额明天更新时向上投票。:)感谢你的帮助,我阅读了下面的链接。我不知道为什么要用a^n代替F[n],可能是因为一些微分方程,或者是因为递推关系以指数速率增加,或者可能是试验。现在忽略这个事实,我们可以找到递推方程的解,就像你们在这里做的一样。我还观察到有三个数字F[0]、F[1]、F[1]-F[0]和负(180度旋转)在重复。你能解释一下这个方程的根与实际解的关系吗?我的意思是,方程的解给出了两个相距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
(我正在使用)。然后你可以从中计算F(2),F(3),F(4)。你会发现虚部抵消,所以如果F0和F1是实的,那么F(n)是实的。虽然理论上这是100%正确的,但在实践中,这些竞赛通常会提供一个输入约束,使得浮点舍入误差太大,无法使用此公式。有一种通用的log(n)解决方案,它使用矩阵求幂和仅使用整数算法。