4個標記爲1,2,3,4的節點構成自由樹(算法導論裏的定義,鏈接着,無環,無向的圖),一共有多少種構造方法?若是N個節點呢?html
4個節點能夠經過窮舉的方式獲得答案,一共有16中方式。算法
第一類構造方式,取一個節點作中心,剩餘三個節點與其相連,一共4種(每一個節點作一次中心)。spa
第二類構造方式,四個節點連成一條線,能夠當作個排列,第一個有4種取法,第二個有3種,依次類推。可是由於例如1234與4321結構上是同樣的,htm
因此總的排列數除以2纔是總共的構造數,即 $\frac{4!}{2}$。(這個是基本的排列知識)blog
圖片來源圖片
下面講解其中的一種Prufer Code 解法。get
它的思想就是計數裏或者其餘場合常常出現的——一對一映射的方法。每一顆自由樹對應一個Prufer Code, 每個Prufer Code對應一顆自由樹。it
這樣計算Prufer Code的個數就獲得了自由樹的個數。方法
先給出公式, 自由樹的總個數爲$T(N) = N^(N-2)$im
參考資料