首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >大问题-算法分析III

大问题-算法分析III
EN

Stack Overflow用户
提问于 2011-04-12 11:39:13
回答 1查看 464关注 0票数 6

我有以下问题:

用大'O‘表示法解决递归关系,简化答案:

代码语言:javascript
复制
f(0) = 2
f(n) = 6f(n-1)-5, n>0

我知道这是一个一阶的非齐次递推关系,并且已经试过这个问题,但是我似乎无法得到基本情况的正确输出(f(0) = 2)。

这个问题必须在证明中使用几何级数论坛之和。

这是我的答案-注和(x= y,z)是大写西格玛表示法的替代,其中x是初始化为y的和的下界,z是求和的上界:

代码语言:javascript
复制
1.  *change forumla:*
2.     f(n) = 6^n.g(n)
3.  => 6^n.g(n) = 6.6^(n-1) .g(n-1) -5   
4.  => g(n) = g(n-1)-5/6^n
5.  => g(n) = sum(i=1, n)-5/6^i
6.  => f(n) = 6^n.sum(i=1, n)-5/6^i
7.  => *Evaluate the sum using geometric series forumla*
8.  => sum(i = 1, n)-5/6^i = [sum(i = 1, n)a^i] -------> (a = -5/6)
9.  => *sub a = -5/6 into geometric forumla [a(1-a^n)/(1-a)]*
10. => [(-5/6(1 - (-5/6)^n))/(1-(-5/6))]
11. => g(n) = [(-5/6(1 + (5/6)^n))/(1+5/6)]
12. => f(n) = 6^n . g(n) = 6^n[(-5/6(1 + (5/6)^n))/(1+5/6)]
13. => *sub in n = 0 to see if f(0) = 2*

首先,我确信第11行的方程可以进一步简化,其次,在n=0中减去,得到的结果应该是2。当我到达第13行时我无法得到这个答案..。

编辑:我需要知道的是,当把n=0减到第12行的方程中时,为什么我没有得到f(0) =2。另外,我想知道的是,如何简化第12行f(n)的方程?

有人.?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-12 12:19:27

不用想太多,我要说,f(n + 1)是f(n)的6倍,减去一个常数。因此,f(n)肯定是O(6^n)。虽然你可能会发现一个更紧的界限,这差不多是我在实践中!

为了好玩,我要试试这个:

代码语言:javascript
复制
f(1) = 6f(0) - 5
     = 6^1.f(0)
f(2) = 6f(1) - 5
     = 6(6f(0) - 5) - 5
     = 6^2.f(0) - 6^1.5 - 5
f(3) = 6f(2) - 5
     = 6^3.f(0) - 6^2.5 - 6^1.5 - 5

我冒险猜一下

代码语言:javascript
复制
f(n) = 6^n.f(0) - 5.(6^0 + 6^1 + ... + 6^(n-1))

我很肯定,我可以用几行归纳来证明这一点(把练习留给学生)。

现在,

代码语言:javascript
复制
sum (k in 0..n-1) 6^k  =  (1 - 6^n) / (1 - 6)

因此

代码语言:javascript
复制
f(n) = 6^n.f(0) - 5.(1 - 6^n) / (1 - 6)
     = 6^n.f(0) + (1 - 6^n)
     = 6^n.(2 - 1) + 1
     = 6^n + 1

证实了我先前的直觉。

让我们做几个快速检查计算:

代码语言:javascript
复制
f(0) = 2 = 6^0 + 1
f(1) = 6.2 - 5 = 7 = 6^1 + 1
f(2) = 6.7 - 5 = 37 = 6^2 + 1
f(3) = 6.37 - 5 = 237 = 6^3 + 1

够我做作业了:-)

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

https://stackoverflow.com/questions/5634557

复制
相关文章

相似问题

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