用数学归纳法证明复发系统

时间:2011-04-08 10:45:18

标签: math

有fnc:

bool ISINTREE( int x, BinTree<int> t) 
  {
  bool  b = false

  if  (!t.isEmpty())
    {
    if  (x  ==  t.getRoot())
      { b = true }
    else
      {
      if (ISINTREE(x,t.leftTree()))
        { b = true }
      if (ISINTREE(x,t.rightTree()))
        { b = true }
      }
    }

  return  b 
  } 

如何证明(使用数学归纳法)T(n)= 11×2 ^ n - 7是一个解 这个fnc的重复系统。

EDITED
设F(n)= 11 * 2 ^ n - 7
现在,
对于k> 0
T(k-1)= F(k-1)= 11 * 2 ^(k-1)-7
T(k)= 7 + 2 *(T(k-1))
= 7 + 2 *(11 * 2 ^(k-1)-7)
= 11 * 2 ^ k -7

1 个答案:

答案 0 :(得分:2)

这里n是什么?树中的元素数量?如果是这样,我们可以肯定地说,在最坏的情况下,这个算法会访问树中的每个节点,所以运行时最坏的情况是T(n) = n,在这种情况下是前提(这是{ {1}})无效。

<强>更新

为了满足这种不确定性,让我们来看看最坏的情况(要查找的项目不在树中)。不失一般性,让我们假设我们正在寻找一个完美平衡的树,即每个子树都有T(n) = 11 . 2^n - 7个元素。因此,在这些假设下,递归关系是:

(n-1)/2

(我说这里只有4个可执行操作,但为了简单起见,我们称之为7)。

显然,T(n) = 2.T((n-1)/2) + 7 不是这种关系的解决方案。