Prüfer编码与Cayley公式学习小记

传送门:顾森大爷的博客.

Prüfer编码:

一棵有编号的树如何用一个序列表示?Prüfer编码出奇迹。

如何构序列:

一共有n-2次操作:
找到当前叶子节点中编号最小的那个点x,输出与x相邻的点,删掉x。

根据序列求树:

由于没有出现在序列里的序号恰好是是叶子节点,所以每次找到每次找到序号最小的叶子节点,与序列的对应项形成一条边,把这个叶子删掉,继续考虑即可。

*一棵树对应唯一一个Prüfer编码,一个Prüfer编码也对应唯一一棵树。

Cayley公式:

n个点的完全图的生成树个数个数是 nn2 n n − 2

因为一个Prüfer编码对应一棵树,而点数为n的Prüfer编码长度是n-2,每个位置有n种可能,所以为 nn2 n n − 2

推导:
设编号为i的点的度数是 di d i ,则树的个数是 (n2)!(di1) ( n − 2 ) ! ∏ ( d i − 1 ) ! ,这相当于有重复元素的排列问题。

你可能感兴趣的:(数论杂集)