我有以下问题:
使用Big'O'符号解决递归关系,简化答案:
f(0) = 2
f(n) = 6f(n-1)-5, n>0
我知道这是一阶非均匀递归关系,并且对问题有所了解,但我似乎无法得到基本情况的正确输出(f(0)= 2)。
问题必须在证明中使用几何级数论坛的总和。
这是我的答案 - 注意和(x = y,z)是大写西格玛符号的替代,其中x是初始化为y的总和的下限,z是求和的上限:
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.另外我想知道的是如何简化f的等式(n)第12行?
任何......?
答案 0 :(得分:2)
如果不考虑这个问题,我会说f(n + 1)比f(n)大6倍,减去一个常数。因此,f(n)当然是O(6 ^ n)。虽然你可能会发现一个更严格的约束,但这就是我在实践中所做的一切!
为了它的乐趣,我会试试这个:
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
我会冒这个猜测
f(n) = 6^n.f(0) - 5.(6^0 + 6^1 + ... + 6^(n-1))
而且我很确定我可以通过几行的归纳证明这一点(练习留给学生练习)。
现在,
sum (k in 0..n-1) 6^k = (1 - 6^n) / (1 - 6)
因此
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
证实了我早先的直觉。
我们来做一些快速检查计算:
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
这对我来说足够做作业: - )