当前位置: 首页 > news >正文

离散数学---树

目录

1.基本概念及其相关运用

2.生成树

3.有向树

4.最优树

5.前缀码


1.基本概念及其相关运用

(1)无向树:连通而且没有回路的无向图就是无向树;

森林就是有多个连通分支,每个连通分支都是树的无连通的无向图;

树叶就是这个无向图里面的度数是1的节点,分支点就是度数大于等于2的节点,简单的讲就是没有其他的分支的顶点就叫做树叶,还可以从这个地方继续细分的顶点就叫做分支点;

(2)无向树的特点

无向树的三个特点,边数等于顶点数减去1,连通而且没有回路;

(3)随堂测验:对于无向树的进一步理解

无向树的任意的一条边都是桥(就是割边);任意的两个不同的节点之间只有一条路径可以抵达(因为无向树里面要求是没有回路,如果有第二条路径可以抵达不就是构成回路了,这样的话就不满足这个无向树的定义了),无向树就是一个简单图,不相邻的节点之间添加一条边就会形成初级的回路;

 实际问题:求解这个树叶的数量,我们需要用到握手定理,就是度数和等于边数的两倍,边的数量根据  边数等于顶点数减去1  这个等量关系得出,最后根据握手定理进行求解,反正就是要用到这个无向树的性质和握手定理求解树叶的个数;

(4)实战演练

这个试画出六阶的无向树,这个六阶的表示是这个树有6个顶点,根据这个定理,无向树里面的边数等于顶点数减去1,说明这个无向树是有5条边,我们在根据这个握手定理,就可以的出来这个 无向树的度数和就是边数的两倍,也就是10,这个时候我们再进行列举所有的可能会出现的情况,因为是6个顶点,最大的数字度数就只能是5,否则就会出现重边和环,不满足这个无向树的定义了,其中的第四种情况是可以画出来两种可能的情况的;

这个就是利用握手定理,度数和等于边数的两倍,边数等于顶点数减去1,利用这两个等量关系就可以基本上解决这个无向树里面的所有的相关问题;在这个等量关系里面,边数是发挥了桥梁的作用,因为这个边数是顶点数减去1,边数的两倍就是度数和,边数这个变量把握手定理和无向树里面的定理给串联了起来;

(5)综合练习

树都是二部图,这个是没有问题的,因为这个二部图的判定定理就是没有奇数圈,而我们的数是不会有回路的,所以肯定就没有圈,肯定是满足二部图的定义的;

哈密顿图的定义就是经过所有的节点返回,判定定理就是这个没有奇度数的顶点,这个时候我们的数如果有树叶的话,肯定是有奇度数的顶点的,不一定是欧拉图;树里面的平凡树是哈密顿图,也是欧拉图,其他的数都不是哈密顿图和欧拉图;

平面图的要求就是不交叉,这个树肯定不会交叉,我们正常情况下去画一棵树都是不会交叉的,Krs就是一个二部图,rs分别表示的是两个不同的集合里面的节点的个数,k10就是一个数,只有一片树叶的树,k11和k12都是树,所以这个krs有的是树,有的不是树;

2.生成树

(1)生成树和余树

对于右边的一个平面图,包括这个红色的和黑色的,如果这个平面图的生成子图是一棵树,我们就把这个生成子图叫做这个平面图的生成树,生成树里面涉及到这个平面图里面的边我们叫做数值,没有包括到生成树里面的边我们叫做弦,这些弦组成的图形叫做余树;

什么是生成子图,首先这个生成子图肯定是一个平面图的子图,这个是很明显的,其次生成子图还需要满足这个生成子图需要包括这个原来的平面图上面的所有的顶点,而且没有重边,没有环;实际上对于一个图而言,是可以有很多个生成子图的,所以一个连通图可以有很多个不同的生成树;

虽然这个生成子图剩下的弦的集合叫做余树,但是这个并不是真正的树,因为显然这个余树是不联通的,不符合树的定义; 

(2)最小生成树

我们上面介绍的生成树是可能有多个的,这些情况里面的这个权重最小的就是最小生成树,最小生成树同样也不是唯一的;

这个求解最小生成树的算法有这个避圈法,这个方法的主要逻辑就是躲避开所有的圈,按照从小到大的权重进行相应的排列,不能形成圈,满足这个树的定义;

3.有向树

(1)有向树就是指那些不关注方向的情况下,这个是一棵树,我们就可以称之为有向树;

有向树里面有这个根数(只有一个入度是0的顶点,其余的顶点的入度是1),这个入度是0的顶点我们称之为树根;

这个树根就是这个图里面的最上面的那个点,出度是0的节点我们称之为树叶,出度大于等于1 的节点我们叫做内点,内点和树根就组成了这个分支点,这个树高和树的层数也是我们关注的,这个定义和我们在数据结构里面的定义是有所区别的,我们这里定义的树高指的就是从根树开始经过的边的个数 ,所以这个图里面的红色节点的层数就是3,因为这个树根只需要经过三条边就可以到达这个节点的位置;

(2)根树的分类

(3)随堂演练

这个题目上面的五元正则树表示这个树如果有子节点那么就必须要有5个子节点,我们根据题目的要求画出这个正则树,分支点就是这个树根和内点的总称,这个图里面有1个树根,两个内点,所以这个分支点的个数就是3个;

 (4)根树的相关证明

这个二元正则树就是如果有节点,需要有两个节点,第一个证明就是用的握手定理和这个边数,树叶数和这个顶点数之间的转换,我们需要先画出来这个已知的图形,射出一个变量n表示这个树的顶点的数量,根据这个握手定理,树根的度是2,树叶的度是1,剩下的这个内点的个数就是n-1-t,其中这个里面1表示的就是树根,t就是这个树里面的树叶的数量,剩下的就是内点,一个内点的度是3,因此我们就可以根据这个度数等于边数的两倍列方程,m=n-1联立即可求解;

r元正则树其实是一样的逻辑,就是这个内点的度数是r+1,i-1求出来的就是这个内点的数量,第一个r表示的就是这个树根的度数,第三个t表示的就是所有的树叶的度数和;

我们通过这连个证明就可以发现,只要是相关的题目,必须同时拥有边数和顶点数这两个变量,第一个是给出来了边数,我们需要自己设一个变量n表示顶点数,第二个是给出了分支节点的个数,树叶的个数,实际上就是给出了所有的节点的个数,我们需要定义一个变量m表示边数;

4.最优树

(1)权重乘上对应的长度,求和就是该带权二叉树的权(这里的权重求和并不是这个树上面的所有节点,而是树叶节点),在所有的二叉树里面,权值最小的我们称之为最优二叉树;

(2)哈夫曼算法求解最优树问题

这个算法就是在原来的权重集合的基础上面,不断的更新这个权重,让这个最小的两个权重组成新的 权重集合,不断的更新这个分支节点和树叶,直到形成一个完整的树为止;

 (3)算法运用

这个题目就是哈弗曼编码的一个应用,题目上面给出的就是出现的权重 和对应的频率,我们就是根据这个频率的大小进行排序的,首先按照从小到大的顺序进行排列,选出来这个权重最小的59组成14,重新对于这个权重集合进行排序,再从这个剩下的5个权重里面选择最小的12和13相加得到25,再对于这个集合重新排列,接下来就是把这个14 16组成新的权重,依次进行下去,直到形成最终的最优树为止;

实际上我们可以发现这个最优树上面除了我们的权重之外,还有这个01这些标识,这个就是我们接下来要介绍的前缀码的知识;

5.前缀码

(1)相关定义

前缀码就是一个集合里面的某些元素是不是其他某个元素的前缀码,这个如果是的话,就会出现歧义的现象,因此这个我们把如果这个集合里面没有一个序列是另外的一个序列的前缀,我们就把这样的序列结合叫做前缀码; 

(2)前缀码的定理

这样我们学习了前缀码之后,就可以使用这个前缀码解决上面的问题了,这个01就是一种二叉的标识,我们根据这个就可以写出任意的二叉树的前缀码,同理,我们根据任意的一个前缀码都是可以画出这个与之对应的二叉树的;

(3)实际应用

 

 

 上面的这个就是一个实际的问题,通信里面的八进制的不同的数字的使用的次数是不一样的,这个是用我们使用哈夫曼算法对于这个问题求解他的最优树,他的百分比就可以理解为这个对应的权重,按照上面的方法不断地合并,并对于这个新的序列集合排序,得到了这个最优树,我们通过这个树叶节点的权重乘上对应的层数(从树根开始到这个节点的经过的边数)得到的就是285,平均下来的一个就是2.85,我们如果想要传输10的n次方数据,就需要二进制数字2.85*10的n次方个,但是使用等长码就需要3*10的n次方个,这个也显示出来我们使用哈夫曼编码的优势;

通过上面的例子,我们也可以知道对于这个不同的数字,在于我们的日常使用中的频率是不一样的,在这个最优二叉树里面,我们经常使用的数字靠近树根,而且这个前缀码简洁,那些不是很经常使用的数字就远离这个树根,而且对应的前缀码就会比较复杂,这个也是变长编码的一大特点。

相关文章:

离散数学---树

目录 1.基本概念及其相关运用 2.生成树 3.有向树 4.最优树 5.前缀码 1.基本概念及其相关运用 (1)无向树:连通而且没有回路的无向图就是无向树; 森林就是有多个连通分支,每个连通分支都是树的无连通的无向图&…...

【栈】1106. 解析布尔表达式

本文涉及知识点 栈 LeetCode 1106. 解析布尔表达式 布尔表达式 是计算结果不是 true 就是 false 的表达式。有效的表达式需遵循以下约定: ‘t’,运算结果为 true ‘f’,运算结果为 false ‘!(subExpr)’,运算过程为对内部表达式…...

u盘内容无故消失了是什么原因?u盘部分内容无故消失了怎么恢复

在数字化时代,U盘作为便携存储设备,承载着许多重要的数据。然而,有时我们可能会遭遇U盘部分内容无故消失的情况,这无疑给我们的工作和生活带来了不小的困扰。本文将为您解析U盘内容消失的可能原因,并分享几招实用的数据…...

glm-4v-9b 部署

glm-4v-9b 模型文件地址 GLM-4 仓库文件地址 官方测试 硬件配置和系统要求 官方测试硬件信息: OS: Ubuntu 22.04Memory: 512G…...

Ansible——unarchive模块

目录 参数总结 基础语法 常见的命令行示例 示例1:解压缩文件到指定目录 示例2:解压缩文件并设置权限 示例3:远程URL解压缩 示例4:强制覆盖现有文件 具体步骤和示例 示例5:只要文件解压后,如果存在…...

Ansible——get_url模块

目录 主要用途 参数总结 基本语法示例 使用示例 示例1:下载文件 示例2:使用校验和验证文件 示例3:使用 HTTP 基本认证 示例4:通过代理服务器下载文件 示例5:设置文件权限、所有者和组 示例6:强制…...

macbook本地部署 pyhive环境连接 hive用例

前言 公司的测试和生产环境中尚未提供基于Hive的客户端。若希望尝试操作Hive表,目前一个可行的方案是使用Python语言,通过借助pyhive库,您可以对Hive表进行各种操作。以下是一些示例记录供您参考。 一、pyhive是什么? PyHive是一…...

物理安全防护如何创新强化信息安全体系?

物理安全防护是信息安全体系的重要组成部分,它通过保护实体设施、设备和介质等,防止未授权访问、破坏、盗窃等行为,从而为信息系统提供基础的安全保障。要创新强化信息安全体系中的物理安全防护,可以从以下几个方面着手&#xff1…...

【JAVASE】日期与时间类(上)

一:概述 从JAVA SE 8开始提供了java.time包,该包中有专门处理日期和时间的类。 LocalDate LocalDateTime 和LocalTime 类的对象封装和日期、时间有关的数据,这三个类都是final类,而且不提供修改数据的方法,即这…...

如果需要精确的答案,请避免使用float和double

float和double主要为了科学计算和工程计算而设计,执行二进制浮点运算,这是为了在广泛的数值范围上提供较为精确的快速近似计算而精心设计的。然而,它们没有提供完全精确的结果,所以不适合用于需要精确结果的场合,尤其是…...

大模型,也在卷价格

“百模大战”已从算力战、规模战蔓延到了价格战。 5月15日,字节跳动宣布豆包主力模型(小于等于32K)在企业市场的定价只有0.0008元/千Tokens,0.8厘就能处理1500多个汉字,比行业便宜99.3%;5月21日&#xff0…...

开关电源中电感设计

开关电源设计中电感 只有充分理解电感在DC/DC电路中发挥的作用,才能更优的设计DC/DC电路。本文还包括对同步DC/DC及异步DC/DC概念的解释。 在开关电源的设计中电感的设计为工程师带来的许多的挑战。工程师不仅要选择电感值,还要考虑电感可承受的电流,绕线电阻,机械尺寸等…...

机器视觉——硬件常用基础知识

光源 机器视觉中光源的作用 1)强化特征,弱化背景 2)光源打得好,图好了,后期算法更简化 3)图好了,测试速度更高 各种光源的综合性能对比及为啥使用LED灯 光的颜色的选择 白色光:通常用…...

宝塔 php7.4 安装SQLserver扩展

一、加入微软源 curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssqlrelease.repo二、安装odbc驱动程序 yum install msodbcsql mssql-tools unixODBC-devel 三、安装php7.4对应的pdo_sqlsrv扩展包 # 下载 wget http://pecl.php.net/…...

C++中的常见I/O方式

目录 摘要 1. 标准输入输出(Standard I/O) 2. 文件输入输出(File I/O) 3. 字符串流(String Stream) 4. 低级文件I/O(Low-level File I/O) 5. 内存映射文件(Memory-Mapped File I/O) 6. 网络I/O(Network I/O) 服务器端 客户端 摘要 C++中的输入输出操作(…...

Java Web学习笔记23——Vue项目简介

Vue项目简介: Vue项目-创建: 命令行:vue create vue-project01 图形化界面:vue ui 在命令行中切换到项目文件夹中,然后执行vue ui命令。 只需要路由功能。这个路由功能,开始不是很理解。 创建项目部保存…...

[UE 虚幻引擎] DTLoadFbx 运行时加载FBX本地模型插件说明

本插件可以在打包后运行时动态加载FBX模型。 新建一个Actor 并添加一个 DT Runtime Fbx Component。 然后直接调用组件的函数 LoadFile 加载显示模型(注:不支持模型动画) FilePath : 加载模型的绝对路径。 Create Collision : 是否创建碰撞…...

mysql log_bin

MySQL 开启配置binlog以及通过binlog恢复数据 https://blog.csdn.net/weixin_44606481/article/details/133344235 CentoS7 安装篇十二:mysql主从搭建(xtrackbackup不停机搭建) https://blog.csdn.net/chengxuyuanjava123/article/details/1…...

数据整理操作及众所周知【数据分析】

各位大佬好 ,这里是阿川的博客,祝您变得更强 个人主页:在线OJ的阿川 大佬的支持和鼓励,将是我成长路上最大的动力 阿川水平有限,如有错误,欢迎大佬指正 Python 初阶 Python–语言基础与由来介绍 Python–…...

maven的install不报错但deploy到nexus报400错误

一.情况描述 mvn install工程正常构建完成,但我mvn deploy报400错误,局域网maven组件仓库nexus也是正常的,deploy的帐号密码都是对的。报错信息如下: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plu…...

Cesium1.95中高性能加载1500个点

一、基本方式&#xff1a; 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…...

Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器

第一章 引言&#xff1a;语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域&#xff0c;文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量&#xff0c;支撑着搜索引擎、推荐系统、…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上&#xff0c;所以报错&#xff0c;到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本&#xff0c;cu、torch、cp 的版本一定要对…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具&#xff0c;在大规模数据获取中发挥着关键作用。然而&#xff0c;传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时&#xff0c;常出现数据质…...

GC1808高性能24位立体声音频ADC芯片解析

1. 芯片概述 GC1808是一款24位立体声音频模数转换器&#xff08;ADC&#xff09;&#xff0c;支持8kHz~96kHz采样率&#xff0c;集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器&#xff0c;适用于高保真音频采集场景。 2. 核心特性 高精度&#xff1a;24位分辨率&#xff0c…...

云原生玩法三问:构建自定义开发环境

云原生玩法三问&#xff1a;构建自定义开发环境 引言 临时运维一个古董项目&#xff0c;无文档&#xff0c;无环境&#xff0c;无交接人&#xff0c;俗称三无。 运行设备的环境老&#xff0c;本地环境版本高&#xff0c;ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...