求解AVL树中节点数的递归关系?

时间:2013-04-01 03:42:13

标签: math data-structures discrete-mathematics avl-tree recurrence

假设我们有这种递归关系,它出现在AVL树的分析中:

  • F 1 = 1
  • F 2 = 2
  • F n = F n - 1 + F n - 2 + 1(其中n≥3)

如何为F(n)获取封闭形式解决此重现?此数字用于获取AVL tree中具有高度n的最小内部节点数。

1 个答案:

答案 0 :(得分:3)

有很多方法可以解决这种复发问题,但其中大多数都非常复杂。我认为最简单的方法是扩展系列的几个术语,看看你发现了什么:

  • F(1)= 1
  • F(2)= 2
  • F(3)= 4
  • F(4)= 7
  • F(5)= 12
  • F(6)= 20

如果您看一下,您会注意到以下情况:

  • F(1)= 1 = 2 - 1
  • F(2)= 2 = 3 - 1
  • F(3)= 4 = 5 - 1
  • F(4)= 7 = 8-1
  • F(5)= 12 = 13-1
  • F(6)= 20 = 21-1

看起来这些术语只是Fibonacci系列中的一个术语,从它们中减去1。特别要注意的是F 3 = 2,F 4 = 3,F 5 = 5等。因此,它看起来像模式是

  • F(1)= 2 - 1 = F 3 -1
  • F(2)= 3 - 1 = F 4 -1
  • F(3)= 5-1 = F 5 -1
  • F(4)= 8-1 = F 6 -1
  • F(5)= 13-1 = F 7 -1
  • F(6)= 21-1 = F 8 -1

因此,更一般地说,看起来模式是F(n)= F n + 2 - 1.我们可以尝试使用数学归纳法将其形式化:

基本情况:

  • F(1)= 1 = 2 - 1 = F 3 -1
  • F(2)= 2 = 3-1 = F 4 -1

归纳步骤:假设F(n)= F n + 2 - 1和F(n + 1)= F n + 3 - 1.然后我们有该

  • F(n + 2)= F(n)+ F(n + 1)+ 1 = F n + 2 -1 + F n + 3 - 1 + 1 =(F n + 2 + F n + 3 ) - (1 + 1)+ 1 = F n + 4 - 1 = F (n + 2)+ 2 -1

瞧瞧!归纳检查结束。

那么我怎么想用Fibonacci系列来寻找这种模式呢?好吧......递归定义有点像Fibonacci系列的那个,所以我预计它们之间可能存在某种联系。观察一切都是斐波纳契数减一,只是创造性的洞察力。您可能会尝试通过使用生成函数或其他组合技巧来解决这个问题,尽管我不是他们的专家。

希望这有帮助!