首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >F(n) = F(n-1) - F(n-2)

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

Stack Overflow用户
提问于 2015-05-31 01:23:10
回答 2查看 13.9K关注 0票数 2

我在一次编程竞赛中遇到了这个序列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,整个序列重复。

我得到了这个值正在重复,但找不到这个循环顺序的原因。我搜索了循环顺序和序列,但由于循环的原因,我找不到足够的材料来给人真实的感觉。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-31 02:57:35

解决这个问题的另一种方法。请注意,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,a,a^2,a^3,……绕单位圆移动,在2pi/(pi/3)=6步后返回到1。

这种分析与微分方程的相应分析具有相同的缺陷--您如何知道如何寻找某种类型的解?我不知道这个问题的答案,也许别人有。同时,当你看到一个线性差分方程时,想想a^n形式的解。

票数 5
EN

Stack Overflow用户

发布于 2015-05-31 01:32:03

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

代码语言:javascript
复制
F(n -1) = F(n-2) - F(n -3) 

然后,如果我替换原始F(n)表达式中的F(n-1

代码语言:javascript
复制
F(n) = F(n-2) - F(n -3) - F(n-2) = -F(n - 3)
F(n) = - F(n-3)

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

代码语言:javascript
复制
F(n - 3) = - F(n -6)

将后两者结合起来

代码语言:javascript
复制
F(n) = -(-F(n-6)) = F(n-6)

因此,序列是周期为6的周期性序列

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30549158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档