离散下学期提纲

概览

  • Realtions(关系)
  • Semigroups and Groups(群和半群)
  • Groups and coding(群和码)

  • Advanced Counting Techniques(高级计数技巧)

  • Groups(图)
  • Trees(树)

关系

  • Relations and their properties(关系及关系性质)
  • n-ary relations and their applicaitons(n元关系及应用)
  • Representing realtions(关系的表示)
  • Closures of relations(关系闭包)
  • Equivalence relations(等价关系)
  • Partial Ordings(偏序关系)

群和半群

  • Binary operations revisited(二元关系)
  • Semigroups(半群)
  • Products and Quotients of Semigroups(乘积半群和商半群)
  • Groups(群)
  • Products and Quotients of Groups(乘积群和商群)

群和码

  • Coding of Binary Information and Error Dection
  • Decoding and Error Correction

高级计数技巧

  • Recurrence Relation
  • Solving Recurrence Relations
  • Divide-and-Conquer Algorithms and Recurrence Relations(分治算法和递归关系)
  • Generating Functions(生成函数)
  • Inclusion-Exclusion(容斥)
  • Applications of Inclusion-Exclusion(容斥原理的应用)

  • Graphs and Graph Models
  • Graph terminology and Special Types of Graphs
  • Representing Graphs and Graphs Isomorphism(图的表示和同构)
  • Connectivity(连通性)
  • Euler and Hamilton Path(欧拉联通与哈密顿通路)
  • Shortest-path Problem(最短通路问题)
  • Planar Graphs(平片图)
  • Graph Coloring(图着色)

  • Introduction to trees(树的概述)
  • Application of Trees
  • Tree Traversal(树的遍历)
  • Spanning Trees(生成树)
  • Minimum Spanning Trees(最小生成树)

大致分为三个板块:
板块一:由关系引入,到群和半群,最后是偏应用的群和码
板块二:高级计数技巧
板块三:图和树

Advanced Counting Techniques

由于很多计数问题不能用第六章(counting)讲解的方法解决。我们在这里介绍一些更高级的方法。
一些问题可以表示为递推关系和初始条件构成的序列。由与这个序列有关的等式可以得到每一项的显示公式(explicit formula)(求解递推公式)。类似的技术可以解决很多不同的计数问题。
递推关系起到重要作用的两种算法范式:动态规划(dynamic)、分治(divide-and-conquer)。(二者区别在于子问题是否重叠,重叠的叫动态规划) 同时,我们可以用递推公式求解算法复杂度。
我们还可以利用形式幂级数(也叫生成函数)来求解许多计数问题。其中x的幂的系数代表我们感兴趣的序列的项。生成函数可以用来求解递推关系式和证明组合恒等式。
还有一种方法:通过计数集合并集中元素个数来解决问题。我们将开发一种叫做容斥原理(Inclusion-Exclusion)的算法。

我们研究用递推关系构造模型的计数问题

问题类型:

  • 经典递推问题:斐波那契数列、汉诺塔
  • 求满足特定要求的n长度序列个数(分治思想,枚举最后一(几)位,分成不重合的小规模问题)
  • 卡塔兰数序列(Catalan) C n = ∑ k = 0 n − 1 C k ∗ C n − k − 1 C_n=\sum_{k=0}^{n-1}C_k*C_{n-k-1} Cn=k=0n1CkCnk1

算法与递推关系:递推关系在研究一些算法和算法复杂度方面起着重要作用

8.2 求解线性递推关系

有一类重要的递推关系可以用一种系统方法明确地求解。这种递推关系中,序列的项由它的前项的线性组合来表示。

定义:k阶线性齐次递推关系
a n = c 1 a n − 1 + c 2 a n − 2 + . . . + c k a n − k a_n = c_1a_{n-1}+c_2a_{n-2}+...+c_ka_{n-k} an=c1an1+c2an2+...+ckank
特定递推序列由这个递推关系和k个初始条件唯一确定

说明:

  • 只要满足C_k不为零就可以称为k阶的
  • 齐次是指没有常数部分。
  • 线性是指a_k的表示都是一次的。
求解

通过解特征方程的特征根求解递推关系的显示表示

  1. 把a_k替换成r^k==>原递推关系表示为特征方程
  2. 求解特征根
    2.1. 有两个不同的解: a n = u r 1 n + v r 2 n a_n = ur_1^n+vr_2^n an=ur1n+vr2n
    2.2. 有两个相同的解: a n = u r 1 n + n v r 2 n a_n = ur_1^n+nvr_2^n an=ur1n+nvr2n
  3. 根据初始条件求解u,v

成立性证明同样是递推形式的

接下来给出思想核心

递推方程的解是q ^ n代表,显示表示有解H(n) = q ^ n(通解)。注意,这里当初始态不确定时,解有很多种可能。
这里肯定了一个前提:q是特征方程的特征根<==>q^n是递推方程的解(这一步是可以直接通过化简得到的)
特征根h_1(n),h_2(n)各对应线性齐次方程的一个解。也就是说它们都是该递推方程的解。
使这两个解做线性组合,这个线性组合也是递推方程的解。 u h 1 ( n ) + v h 2 ( n ) uh_1(n)+vh_2(n) uh1(n)+vh2(n)
至于两个特征根相同时的情况同样参考二阶常系数线性齐次微分方程的解的情况

在这里插入图片描述

这里给出思想并不是需要记住证明方法。只是希望将各个知识点关联起来,通过理解记忆方式对固定的解题方法进行高效学习。理解了就不需要死记硬背了。
理解后的记忆:
求解线性齐次递归关系<==>求解常系数线性齐次微分方程。
(解的对应关系a_n = q ^n(通解) <==> r = q)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/182105.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SQL LIKE 运算符:用法、示例和通配符解释

SQL中的LIKE运算符用于在WHERE子句中搜索列中的指定模式。通常与LIKE运算符一起使用的有两个通配符&#xff1a; 百分号 % 代表零个、一个或多个字符。下划线 _ 代表一个单个字符。 以下是LIKE运算符的用法和示例&#xff1a; 示例 选择所有以字母 “a” 开头的客户&#x…

飞翔的小鸟游戏

一.建一个bird的类&#xff0c;放入素材 二.代码 1.Bird类 package bird;import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.IOException;/** 小鸟类* */ public class Bird {int x;// 坐标int y;int width; // 宽高int height;BufferedIm…

机器学习---最大似然估计和贝叶斯参数估计

1. 估计 贝叶斯框架下的数据收集&#xff0c;在以下条件下我们可以设计一个可选择的分类器 : P(wi) (先验)&#xff1b;P(x | wi) (类条件密度) 但是。我们很少能够完整的得到这些信息! 从一个传统的样本中设计一个分类器&#xff1a; ①先验估计不成问题 ②对类条件密度…

ORB-SLAM3在windows11下的编译使用

01 写在前面 近期在学习SLAM&#xff0c;想部署一下ORB-SLAM3&#xff0c;但是自己电脑是win11系统&#xff0c;因此就想着在win11上部署一下。但是网上看了一些教程&#xff0c;有一些博客&#xff0c;但是可能不适合我这种情况把&#xff0c;就很纠结。先说下结果&#xff0…

LangChain的简单使用介绍

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

【源码分析】zeebe actor模型源码解读

zeebe actor 模型&#x1f64b;‍♂️ 如果有阅读过zeebe 源码的朋友一定能够经常看到actor.run() 之类的语法&#xff0c;那么这篇文章就围绕actor.run 方法&#xff0c;说说zeebe actor 的模型。 环境⛅ zeebe release-8.1.14 actor.run() 是怎么开始的&#x1f308; Lon…

【SpringMVC】 三层架构

一.lombok工具包 中央仓库查找这个工具包:https://mvnrepository.com/ 给类添加Data注解就可以获取gettter和setter方法 , 这样我们就不必写getter 和 setter 方法. 也可以给成员属性添加单独的getter 和 setter , 针对某个成员属性单独添加setter或setter方法. 二.如果使用spr…

【华为数通HCIP | 网络工程师】821-IGP高频题、易错题之OSPF(1)

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大三在校生&#xff0c;喜欢AI编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;落798. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc;️…

spark的算子

spark的算子 1.spark的单Value算子 Spark中的单Value算子是指对一个RDD中的每个元素进行操作&#xff0c;并返回一个新的RDD。下面详细介绍一些常用的单Value算子及其功能&#xff1a; map&#xff1a;逐条映射&#xff0c;将RDD中的每个元素通过指定的函数转换成另一个值&am…

SWT/Jface(2): 表格的编辑

前言 上节说到, 创建和渲染表格需要如下几个步骤: 接收源数据数组(也可以是单个对象或者其他集合类型): TableViewer.setInput(Object)渲染接收的数据 渲染表头: TableViewer.setLabelProvider(IBaseLabelProvider)渲染内容: TableViewer.setContentProvider(IContentProvide…

Vue框架学习笔记——Vue实例中el和data的两种写法

文章目录 前文提要Vue实例的el第一种写法第二种写法小结 Vue实例中data第一种写法&#xff0c;对象式效果图片第二种写法&#xff0c;函数式效果图片小结 前文提要 本文仅做自己的学习记录&#xff0c;如有错误&#xff0c;请多谅解 Vue实例的el 第一种写法 <body><…

工业一体全国产方案,米尔T113核心板

入门级HMI屏作为嵌入式系统中重要组成部分&#xff0c;大部分都是串口屏&#xff1b;其功能简单、成本低等特点&#xff0c;使用历史悠久、应用广泛&#xff0c;而随着信息技术的快速发展&#xff0c;行业需求不断升级&#xff0c;工程师使用了大量串口屏后&#xff0c;发现串口…

微服务保护 Sentinel

1.初识Sentinel 文章目录 1.初识Sentinel1.1.雪崩问题及解决方案1.1.1.雪崩问题1.1.2.超时处理1.1.3.仓壁模式1.1.4.断路器1.1.5.限流1.1.6.总结 1.2.服务保护技术对比1.3.Sentinel介绍和安装1.3.1.初识Sentinel1.3.2.安装Sentinel 1.4.微服务整合Sentinel 2.流量控制2.1.簇点链…

python opencv 放射变换和图像缩放-实现图像平移旋转缩放

python opencv 放射变换和图像缩放-实现图像平移旋转缩放 我们实现这次实验主要用到cv2.resize和cv2.warpAffine cv2.warpAffine主要是传入一个图像矩阵&#xff0c;一个M矩阵&#xff0c;输出一个dst结果矩阵&#xff0c;计算公式如下&#xff1a; cv2.resize则主要使用fx&…

Arm64版本的centos编译muduo库遇到的问题的归纳

环境&#xff1a;Mac m2 pro下的VMware虚拟机中Arm64 centos ./build.sh 执行后提示如下 cmake -DCMAKE_BUILD_TYPErelease -DCMAKE_INSTALL_PREFIX…/release-install-cpp11 -DCMAKE_EXPORT_COMPILE_COMMANDSON /root/package/muduo-master – Boost version: 1.69.0 – Co…

【双指针】和为 s 的两个数字

和为 s 的两个数字 文章目录 和为 s 的两个数字题目描述算法思路暴力枚举双指针 代码编写Java代码C代码编写 LCR 179. 查找总价格为目标值的两个商品 - 力扣&#xff08;LeetCode&#xff09; 题目描述 购物车内的商品价格按照升序记录于数组 price。请在购物车中找到两个商品…

Go语言中结构体的使用和示例

结构体&#xff08;简称struct&#xff09;用于创建不同数据类型的成员集合&#xff0c;放入一个单一的变量中。虽然数组用于将相同数据类型的多个值存储在单一变量中&#xff0c;但结构体用于将不同数据类型的多个值存储在单一变量中。结构体对于将数据组合在一起以创建记录非…

云安全之盾:ZStack 云主机安全防护解决方案全方位保护云环境

随着云计算的蓬勃发展&#xff0c;网络威胁愈发复杂&#xff0c;涵盖了从勒索病毒到APT攻击的各种威胁类型。在这一风云变幻的网络安全环境下&#xff0c;云主机安全不再仅仅是一个选项&#xff0c;它是信息系统安全的核心要素。云轴科技ZStack 云主机安全防护解决方案是为了满…

国家超级计算济南中心低代码平台应用实践

摘要&#xff1a;文章主要介绍了济南超算使用低代码平台明道云解决了一系列业务问题&#xff0c;包括资产管理、人员与机构管理、流程制度管理等。通过明道云平台&#xff0c;济南超算成功地将不同部门的业务信息进行整合&#xff0c;提高了工作效率和管理水平。文章还强调了明…

操作系统 day13(RR)

RR&#xff08;时间片轮转&#xff09; 响应时间&#xff1a;系统中有10个进程正在并发执行&#xff0c;如果时间片为1秒&#xff0c;则一个进程被响应可能需要等待9秒。也就是说&#xff0c;如果用户在自己进程的时间片外通过键盘发出调试命令&#xff0c;可能需要等待9秒才能…