2011-08-09

n個點之binary tree個數

1. 為什麼一開始的初始條件 a0 = 1,老師上課說"就不要畫它就1種",但0個點之binary tree個數應該是0個吧?那為什麼初始條件要是1

2. 在之後遞迴設計好後,要用生成函數法來解,但為什麼它兩邊取 summation,n卻要從1開始到無限大,老師上課說"因為a0 = 1,代表這個遞迴是在n >= 1,所以利用生成函數法,兩邊從1開始",但不是a0嗎??n不就是0

謝謝

1 則留言:

月戀星辰 提到...

0個點的binary tree個數是0沒錯、但我認為這裡要算的是「用n個點排成binary ordered tree之方法數」,我知道老師上課寫的是求個數、但我認為寫方法數更精準一點、若是方法數的話、0個點來排binary ordered tree的方法就是1了。

平常我們的遞迴也都有初始條件不是嗎?所以初始值a0為1也沒有什麼好奇怪的啊!畢竟我們已經假設a0了、所以用a0去推下面的a1、a2...是很合理的。所以符合此遞迴的是從1開始。(若n真的從0開始是不合理的、至少在這個遞迴式下、a(k) a(n-k-1)、k=n=0,如同求一邊0個點、一邊-1個點)

再者、我們的假設一開始就是假設樹分成「樹根、左右子樹」,不知道您有沒有注意到、我們一開始就假設了樹根的存在!!所以0個點時沒有樹根、本就不在我們遞迴式的討論範圍阿~

以上淺見..