自由树的计数 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

 

原文地址

相关文章
相关标签/搜索