Cayley凯莱定理——一一对应
定理
过$n$个有标志顶点的树的数目等于$n^{n-2}$。
此定理说明用$n-1$条边将$n$个已知的顶点连接起来的连通图的个数是$n^{n-1}$。也可以这样理解,将n个城市连接起来的树状网络有$n^{n-1}$种可能方案.所谓树状,指的是用$n-1$条边将$n$个城市连接起来,即无环。当然,建造一个树状网络一般是求其长度最短或造价最少等.Cayley定理只能说明可能方案的数目。
证明
Cayley定理的证明方法很多,下面采用最聪明也是最容易理解的一一对应法。不失一般性,假定已知的n个顶点标志为1,2,..n.
假设$T$是其中一棵树,树叶中有标号最小的,设为$a_1$,$a_1$的临界点为$b_1$,从图中消去$a_1$点和边$(a_1,b_1)$,$b_1$点便成为消去后余下的树$T_1$的顶点。在余下的树$T_1$中继续寻找标号最小的树叶,设为$a_2$,$a_2$的邻接点为$b_2$,从$T_1$中消去$a_2$及边$(a_2,b_2)$。如此步骤共执行n-2次,直到最后只剩下一条边为止.于是一棵树对应一序列
$$b_1,b_2,\cdots ,b_{n-2}$$
$b_1,b_2,\cdots ,b_{n-2}$是1到n的数,并且允许重复。
反过来从$b_1 b_2 \cdots b_{n-2}$可以恢复树$T$本身,方法如下:
一个是顶点标号的有序序列
$$1,2, \cdots ,n \tag{1} $$
另一个是生成的序列
$$b_1,b_2,\cdots ,b_{n-2} \tag{2}$$
过程:在序列(1)中找出第一个不出现在序列(2)中的数,这个数显然便是$a_1$,同时形成的边$(a_1,b_1)$,并从(1)中消去$a_1$,从(2)中消去$b_1$,在余下的序列(1)、(2)中继续以上的步骤n-2次,直到序列(2)为空集为止。这时序列(1)剩下的两个数$a_k$,$b_k$,边$(a_k,b_k)$是树T的最后一条边。
以下图说明上述步骤:

上面的过程说明过n个已知标号的顶点的树和序列$b_1b_2 \cdots b_{n-2}$一一对应,根据乘法法则可得,过n个有标号(相当于互异)的顶点的树的数目,由于$1\leq b_i\leq n,i=1,2,\cdots,n-2$,故为$n^{n-2}$个.
Cayley定理的证明过程实际上是提供了构造过n个有标号顶点的树的方法。
(参考书:组合数学 卢开澄、卢华明等编著)
Cayley凯莱定理——一一对应的更多相关文章
- ZOJ 3604 Tunnel Network(凯莱定理)
题目链接: E - Tunnel Network ZOJ - 3604 题目大意: 给定编号1-n的点,和给定编号1-S 的联通图,刚开始1号联通图只有 1个顶点,就是编号为1的顶点,2号联通图也只有 ...
- Prüfer序列和cayley定理
参考资料: 1.matrix67 <经典证明:Prüfer编码与Cayley公式> 2.百度百科 3.Forget_forever prufer序列总结 4.维基百科 5.dirge的学习 ...
- P2817 宋荣子的城堡
P2817 宋荣子的城堡一道找规律的题,现在深入追究发现了有趣的东西.1 12 23 94 64显然k^(k-1) 在日照的时候也推出来了.3 9今天推错了,要列出所有的情况,然后再选,否则会漏掉.答 ...
- [Luogu] P2817 宋荣子的城堡
题目描述 saruka有一座大大的城堡!城堡里面有n个房间,每个房间上面都写着一个数字p[i].有一天,saruka邀请他的小伙伴LYL和MagHSK来城堡里玩耍(为什么没有妹子),他们约定,如果某一 ...
- 求解线性递推方程第n项的一般方法
概述 系数为常数,递推项系数均为一次的,形如下面形式的递推式,称为线性递推方程. \[f[n]=\begin{cases} C &n\in Value\\ a_1 f[n-1]+a_2 f[n ...
- 2019暑期金华集训 Day2 线性代数
自闭集训 Day2 线性代数 高斯消元 做实数时,需要找绝对值最大的作为主元,以获取更高精度. 在欧几里得环(简单例子是模合数)意义下也是对的.比如模合数意义下可以使用辗转相除法消元. 欧几里得环:对 ...
- ZROI 19.07.29 线性代数入门/wq
1.高斯消元 在模意义下依然有效,对主元求逆即可. 甚至可以模合数,需要对两个方程辗转相除,复杂度\(O(n^3\log p)\). 辗转相除法只要能定义带余除法就有效. 逆矩阵:对于矩阵\(A\), ...
- 离散数学 II(最全面的知识点汇总)
离散数学 II(知识点汇总) 目录 离散数学 II(知识点汇总) 代数系统 代数系统定义 例子 二元运算定义 运算及其性质 二元运算的性质 封闭性 可交换性 可结合性 可分配性 吸收律 等幂性 消去律 ...
- 浅谈Prufer序列
\(\text{Prufer}\)序列,是树与序列的一种双射. 构建过程: 每次找到一个编号最小的叶子节点\(Leaf\),将它删掉,并将它所连接的点的度数\(-1\),且加入\(\text{Pruf ...
随机推荐
- 08.IdentityServer4登录中心
08.IdentityServer4登录中心 IdentityServer就是一套Framework,实现了OAuth的授权 理解OAuth流程,学会怎么使用他 http://ruanyifeng.c ...
- 3-8 & 3-9Unicode 编码
3-9Unicode 编码 主要支持英文字母和一些特殊字符,中文不支持, 为了支持世界上所有的字符集 就是Unicode编码的出现 char c='\u005d';表示十六进制的. c表示一个尖括号:
- Linux文件IO操作函数概述
文件概述 Linux中,一切皆文件.文件为操作系统服务和设备提供了一个简单而一致的接口.这意味着程序完全可以像使用文件那样使用磁盘文件.串行口.打印机和其他设备. 也就是说,大多数情况下,你只需要使用 ...
- [WIP]webpack入门
创建: 2019/04/09 安装 npm install --save-dev webpack # 最新版 npm install --save-dev webpack@<version&g ...
- 如何使得 python 脚本 不一闪而过
1. 简单的方法是在最后加上如下语句: os.system("pause") 2. 但是这个不一定有用,原因是可能在之前的代码中发生异常,那么我们看到的效果也是直接一闪而过 办法 ...
- [Xcode 实际操作]八、网络与多线程-(4)使用UIApplication对象发送短信
目录:[Swift]Xcode实际操作 本文将演示如何使用应用程序单例对象,发送短信的功能. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] 注:需要使用真机进行测 ...
- vue2.0.js基础开发使用心得(结合实际项目对数据的增删改查)
1.首先申明,没有使用vue 的组件,以及脚手架等,都是一些基础语法的使用. ------------------------------------------------------------- ...
- __setitem__,__getitem,__delitem__
目录 __setitem__ __getitem__ __delitem__与__delattr__ class Foo: def __init__(self, name): self.name = ...
- LeetCode.905-按奇偶排序数组(Sort Array By Parity)
这是悦乐书的第347次更新,第371篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第212题(顺位题号是905).给定一个非负整数数组A,返回一个由A的所有偶数元素组成的 ...
- C 语言实例 - 使用结构体(struct)
C 语言实例 - 使用结构体(struct) C 语言实例 C 语言实例 使用结构体(struct)存储学生信息. 实例 #include <stdio.h> struct student ...