自由樹的計數 Labeled unrooted tree counting

問題:

      4個標記爲1,2,3,4的節點構成自由樹(算法導論裏的定義,鏈接着,無環,無向的圖),一共有多少種構造方法?若是N個節點呢?html

 

解決方法:

     4個節點能夠經過窮舉的方式獲得答案,一共有16中方式。算法

  第一類構造方式,取一個節點作中心,剩餘三個節點與其相連,一共4種(每一個節點作一次中心)。spa

  第二類構造方式,四個節點連成一條線,能夠當作個排列,第一個有4種取法,第二個有3種,依次類推。可是由於例如1234與4321結構上是同樣的,htm

因此總的排列數除以2纔是總共的構造數,即 $\frac{4!}{2}$。(這個是基本的排列知識)blog

  圖片來源 http://mathworld.wolfram.com/PrueferCode.html

              圖片來源圖片

  下面講解其中的一種Prufer Code 解法。get

  它的思想就是計數裏或者其餘場合常常出現的——一對一映射的方法。每一顆自由樹對應一個Prufer Code, 每個Prufer Code對應一顆自由樹。it

這樣計算Prufer Code的個數就獲得了自由樹的個數。方法

  先給出公式, 自由樹的總個數爲$T(N) = N^(N-2)$im

 

  參考資料

1. Prüfer_sequence

 

原文地址

相關文章
相關標籤/搜索