组合数学相关知识总结(适合复习用)

news2024/9/23 3:12:27

全排列

例子: n n n 个数取 m m m 个数有序排放

通项公式: A n m ( P n m ) = n ∗ ( n − 1 ) ∗ ( n − 2 ) ∗ ⋅ ⋅ ⋅ ∗ ( n − m + 1 ) = n ! ( n − m ) ! A_n^m(P_n^m)=n*(n-1)*(n-2)*···*(n-m+1)= \frac{n!}{(n-m)!} Anm(Pnm)=n(n1)(n2)⋅⋅⋅(nm+1)=(nm)!n!

组合数

例子: n n n 个数取 m m m 个数,杨辉三角

递推公式: C i 0 = 1 ,   C i j = C i − 1 j + C i − 1 j − 1 C_i^0=1,\space C_i^j=C_{i-1}^j+C_{i-1}^{j-1} Ci0=1, Cij=Ci1j+Ci1j1

通项公式: C n m = n ! m ! ( n − m ) ! C_n^m=\frac{n!}{m!(n-m)!} Cnm=m!(nm)!n!

组合数是全排列去掉顺序,所以也有 C n m = A n m m ! C_n^m=\frac{A_n^m}{m!} Cnm=m!Anm

性质: C n m = C n n − m ,   C n 0 + C n 1 + C n 2 + ⋅ ⋅ ⋅ + C n n = 2 n C_n^m=C_n^{n-m},\space C_n^0+C_n^1+C_n^2+···+C_n^n=2^n Cnm=Cnnm, Cn0+Cn1+Cn2+⋅⋅⋅+Cnn=2n

杨辉三角

最简单的杨辉三角与组合数的递推公式相同

组合数的性质在杨辉三角中体现为对称以及第 i i i 行所有数的和为 2 i − 1 2^{i-1} 2i1

不同的是杨辉三角可以带有系数 ( a , b ) (a,b) (a,b),即将杨辉三角第二行赋值为 a a a b b b

而杨辉三角的第 i i i 行就是 ( a , b ) (a,b) (a,b) i − 1 i-1 i1 次方

我们可以通过这种方法求 ( a x + b ) i − 1 (ax+b)^{i-1} (ax+b)i1 展开后每一项前的系数

p.s.我记得这玩意好像也可以用矩阵快速幂求,但是我不会,而且可能也没啥用,就不拓展了

递推公式为第 i i i 行第 j j j 个数 x i , j = a ∗ x i − 1 , j + b ∗ x i − 1 , j − 1 x_{i,j}=a*x_{i-1,j}+b*x_{i-1,j-1} xi,j=axi1,j+bxi1,j1

卡特兰数

例子:括号匹配,走楼梯,出栈顺序,二叉树计数

小数据:1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796

递推公式: h 0 = h 1 = 1 ,   h n = ∑ i = 0 n − 1 h i ∗ h n − i − 1 = h n − 1 ∗ ( 4 n − 2 ) n + 1 h_0=h_1=1,\space h_n=\sum_{i=0}^{n-1}h_i*h_{n-i-1}=\frac{h_{n-1}*(4n-2)}{n+1} h0=h1=1, hn=i=0n1hihni1=n+1hn1(4n2)

通项公式: h n = C 2 n n − C 2 n n − 1 = C 2 n n n + 1 h_n=C_{2n}^n-C_{2n}^{n-1}=\frac{C_{2n}^{n}}{n + 1} hn=C2nnC2nn1=n+1C2nn

对于通项公式的拓展(以走楼梯为例):

走楼梯问题可以抽象的认为是从 ( 0 , 0 ) (0,0) (0,0) 走到 ( n , n ) (n,n) (n,n) 并且不超过直线 y = x y=x y=x(只能向右或向上走)

如图为从 ( 0 , 0 ) (0,0) (0,0) 走到 ( 8 , 8 ) (8,8) (8,8) 并且不超过直线 y = x y=x y=x 的一种走法
在这里插入图片描述
而有时我们需要求的并不是从 ( 0 , 0 ) (0,0) (0,0) 走到 ( n , n ) (n,n) (n,n),假定我们需要求的是从 ( x a , y a ) (x_a,y_a) (xa,ya) 走到 ( x b , y b ) (x_b,y_b) (xb,yb)

再具体的,我们假定从 ( 3 , 0 ) (3,0) (3,0) 走到 ( 6 , 5 ) (6,5) (6,5)
在这里插入图片描述
接下来以这个例子来解释做法,考虑容斥原理

如果不考虑不超过 y = x y=x y=x,那么从 ( 3 , 0 ) (3,0) (3,0) 走到 ( 6 , 5 ) (6,5) (6,5) 总共有 C 6 − 3 + 5 − 0 6 − 3 C_{6-3+5-0}^{6-3} C63+5063

不超过 y = x y=x y=x 等价于不经过 y = x + 1 y=x+1 y=x+1,我们将点 ( 6 , 5 ) (6,5) (6,5) 对称过去得到点 ( 4 , 7 ) (4,7) (4,7)
在这里插入图片描述
( 3 , 0 ) (3,0) (3,0) 走到 ( 4 , 7 ) (4,7) (4,7) 的方案数与从 ( 3 , 0 ) (3,0) (3,0) 走到 ( 6 , 5 ) (6,5) (6,5) 的不合法的方案是相等

解释如图,从 ( 3 , 0 ) (3,0) (3,0) 走到 ( 4 , 7 ) (4,7) (4,7) 的路线超出 y = x + 1 y=x+1 y=x+1 的部分对称回去即可走到 ( 6 , 5 ) (6,5) (6,5)
在这里插入图片描述
( 3 , 0 ) (3,0) (3,0) 走到 ( 4 , 7 ) (4,7) (4,7) 总共有 C 4 − 3 + 7 − 0 4 − 3 C_{4-3+7-0}^{4-3} C43+7043

因此从 ( 3 , 0 ) (3,0) (3,0) 走到 ( 6 , 5 ) (6,5) (6,5) 的合法的方案即为 C 6 − 3 + 5 − 0 6 − 3 − C 4 − 3 + 7 − 0 4 − 3 C_{6-3+5-0}^{6-3}-C_{4-3+7-0}^{4-3} C63+5063C43+7043

( x b , y b ) (x_b,y_b) (xb,yb) 关于 y = x + 1 y=x+1 y=x+1 对称即为 ( y b − 1 , x b + 1 ) (y_b-1,x_b+1) (yb1,xb+1),不合法方案数 C y b − 1 − x a + x b + 1 − y a y b − 1 − x a = C x b − x a + y b − y a y b − x a − 1 C_{y_b-1-x_a+x_b+1-y_a}^{y_b-1-x_a}=C_{x_b-x_a+y_b-y_a}^{y_b-x_a-1} Cyb1xa+xb+1yayb1xa=Cxbxa+ybyaybxa1

由此可以推导得出,从 ( x a , y a ) (x_a,y_a) (xa,ya) 走到 ( x b , y b ) (x_b,y_b) (xb,yb) 的方案数为 C x b − x a + y b − y a x b − x a − C x b − x a + y b − y a y b − x a − 1 C_{x_b-x_a+y_b-y_a}^{x_b-x_a}-C_{x_b-x_a+y_b-y_a}^{y_b-x_a-1} Cxbxa+ybyaxbxaCxbxa+ybyaybxa1

例题:登山

Q:如果出现 y b − 1 < x a y_b-1<x_a yb1<xa 的情况怎么办?(可以证明不存在 x b + 1 < y a x_b+1<y_a xb+1<ya 的情况)

A:可以发现这种情况不存在不合法方案,所以方案数即为 C x b − x a + y b − y a x b − x a C_{x_b-x_a+y_b-y_a}^{x_b-x_a} Cxbxa+ybyaxbxa

第一类斯特林数

定义:用 S 1 n , m S1_{n,m} S1n,m 表示将 n n n 个不同元素构成 m m m 个圆排列的数目

递推公式及证明:

边界情况,显然 S 1 0 , 0 = 1 , S 1 n , 0 = 0 S1_{0,0}=1,S1_{n,0}=0 S10,0=1,S1n,0=0

容易发现 S 1 n , m S1_{n,m} S1n,m 可以从两个状态转移过来

一个是 S 1 n − 1 , m − 1 S1_{n-1,m-1} S1n1,m1,这种情况下第 n n n 个元素单独构成第 m m m 个圆,产生 S 1 n − 1 , m − 1 S1_{n-1,m-1} S1n1,m1 的贡献

另一个是 S 1 n − 1 , m S1_{n-1,m} S1n1,m,这种情况下第 n n n 个元素可以放在前 n − 1 n-1 n1 个元素的任意一个的前面,产生 S 1 n − 1 , m ∗ ( n − 1 ) S1_{n-1,m}*(n-1) S1n1,m(n1) 的贡献

性质:

S 1 n , 1 = ( n − 1 ) ! ,   S 1 n , 2 = ( n − 1 ) ! ∗ ∑ i = 1 n − 1 1 i S1_{n,1}=(n-1)!,\space S1_{n,2}=(n-1)!*\sum_{i=1}^{n-1}\frac{1}{i} S1n,1=(n1)!, S1n,2=(n1)!i=1n1i1

S 1 n , n = 1 ,   S 1 n , n − 1 = C n 2 ,   S 1 n , n − 2 = 2 ∗ C n 3 + 3 ∗ C n 4 S1_{n,n}=1,\space S1_{n,n-1}=C_n^2, \space S1_{n,n-2}=2*C_n^3+3*C_n^4 S1n,n=1, S1n,n1=Cn2, S1n,n2=2Cn3+3Cn4

∑ i = 0 n S 1 n , i = n ! \sum_{i=0}^nS1_{n,i}=n! i=0nS1n,i=n!

第二类斯特林数

定义:用 S 2 n , m S2_{n,m} S2n,m 表示把 n n n 个不同的元素划分到 m m m 个集合的方案数(集合不能为空)

很容易联想到放球模型,描述为:将 n n n 个不同的小球放入 m m m 个相同的盒子中,盒子不能为空,有几种方案

证明过程与第一类类似,不再赘述

递推公式: S 2 0 , 0 = 1 , S 2 n , 0 = 0 , S 2 n , m = S 2 n − 1 , m − 1 + S 2 n − 1 , m ∗ m S2_{0,0}=1,S2_{n,0}=0,S2_{n,m}=S2_{n-1,m-1}+S2_{n-1,m}*m S20,0=1,S2n,0=0,S2n,m=S2n1,m1+S2n1,mm

通项公式: S 2 n , m = 1 m ! ∑ i = 0 m ( − 1 ) i ∗ C m i ∗ ( m − i ) n S2_{n,m}=\frac{1}{m!}\sum_{i=0}^m(-1)^i*C_m^i*(m-i)^n S2n,m=m!1i=0m(1)iCmi(mi)n

性质:

S 2 n , 1 = 1 ,   S 2 n , 2 = 2 n − 1 − 1 ,   S 2 n , 3 = 3 n − 1 + 1 2 − 2 n − 1 S2_{n,1}=1,\space S2_{n,2}=2^{n-1}-1,\space S2_{n,3}=\frac{3^{n-1}+1}{2}-2^{n-1} S2n,1=1, S2n,2=2n11, S2n,3=23n1+12n1

S 2 n , n = 1 ,   S 2 n , n − 1 = C n 2 ,   S 2 n , n − 2 = C n 3 + 3 ∗ C n 4 ,   S 2 n , n − 3 = C n 4 + 10 ∗ C n 5 + 15 ∗ C n 6 S2_{n,n}=1,\space S2_{n,n-1}=C_n^2, \space S2_{n,n-2}=C_n^3+3*C_n^4,\space S2_{n,n-3}=C_n^4 +10*C_n^5+15*C_n^6 S2n,n=1, S2n,n1=Cn2, S2n,n2=Cn3+3Cn4, S2n,n3=Cn4+10Cn5+15Cn6

∑ i = 0 n S 2 n , i = B n \sum_{i=0}^nS2_{n,i}=B_n i=0nS2n,i=Bn B n B_n Bn 为倍尔数,下面会简单介绍)

两类斯特林数之间的递推式和实际含义很类似,他们之间存在一个没啥用的 互为转置的转化关系:

∑ k = 0 n S 1 ( n , k ) S 2 ( k , m ) = ∑ k = 0 n S 2 ( n , k ) S 1 ( k , m ) \sum_{k=0}^nS1(n,k)S2(k,m)=\sum_{k=0}^nS2(n,k)S1(k,m) k=0nS1(n,k)S2(k,m)=k=0nS2(n,k)S1(k,m)

倍尔数(贝尔数)

听说倍尔数与诗词有着奇妙的联系,应用倍尔数可以算出诗词的各种押韵方式

扯远了,回归正题

定义:用 B n B_n Bn 表示将 n n n 个不同元素划分成若干个不相交集合的方案数

小数据:1, 1, 2, 5, 15, 52, 203, 877, 4140

规律:如图为倍尔三角形
在这里插入图片描述
我们可以发现第一竖列和右边斜行都是倍尔数

它有两条规律:每排的最后一个数都是下一排的第一个数;其他任何一个数等于它左边相邻数加左边相邻数上面的一个数

放球模型

根据小球是否相同,盒子是否相同,盒子能否为空三个条件可分为八类模型

待完善···

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[QT编程系列-12]:QT快速学习 - 0 - 主要内容

第0章 主要内容 0.1 QT的主要内容 附录&#xff1a; Qt 是一个功能强大的应用程序开发框架&#xff0c;涵盖了广泛的知识点。以下是一些常见的 Qt 知识点&#xff1a; 基本概念和特性&#xff1a;了解 Qt 的基本概念&#xff0c;如信号和槽、事件处理、对象模型、元对象系统等…

Python基础合集 练习27 (turtle函数使用)

import turtle as t 画笔控制工具 t.penup() 表示画笔抬起 海龟在天上飞 不能直接形成图形 t.pendown() 画笔落下 海龟降下来 t.pensize(15) 也可以用 t.width() 画笔宽度 t.pencolor(“red”) 画笔颜色 为颜色字符串或rgb值 运动控制函数 控制行进方向、走曲线或…

二进制文件的Python写入

二进制文件的Python编写 这么基础的东西&#xff0c;必然用内置的就好 二进制文件的Python读写 重要提示 p.s. 1 >>> bHello World.decode() "Hello World" True >>> example import struct with open(binary_file.bin, wb) as file:data b…

【cfengDB】自己实现数据库第0节 ---整体介绍及事务管理层实现

LearnProj 内容管理 MySQL系统结构一条SQL执行流程 cfengDB整体结构事务管理TM模块TID文件规则定义文件读写 -- NIORandomAccessFile、FileChannel、ByteBuffer接口实现文件合法检测begin()commit(tid)rollback(tid)tid文件创建 本文作为数工底层的项目CfengDB开始篇章&#xf…

vue 升级3 +vite+antdv4

目录 一、安装包相关升级 二、vite.config 三、 入口文件修改 四、App.vue 及相关升级 五、路由 六、状态管理VUEX 一、安装包相关升级 升级pakage.json相关安装包 vue2插件vue3替换插件vue2使用vue3使用vue-ls vuex-persistedstate或vuex-persistVue.ls.get() Vue.ls.…

C++ 多线程学习总结

C 多线程 创建线程 thread jion与detach方式的区别 jion方式&#xff1a;必须等待创建并启动的子线程任务执行完毕&#xff0c;才会继续往下执行。 示例&#xff1a; #include <stdio.h> #include <unistd.h> #include <iostream> #include <string&g…

【企业架构实践】要避免的 7 个企业架构错误

颠覆性时代需要有弹性、前瞻性的企业架构。不要让错误的框架破坏您的组织实现当前和未来目标的能力。 企业架构为成功的业务 IT 计划奠定了基础。如果设计和实施得当&#xff0c;企业架构将帮助业务领导者实现他们的目标&#xff0c;使组织变得更具响应性、效率和竞争力。 不幸…

matlab使用教程(2)—数组索引、工作区与字符

1数组索引 MATLAB 中的每个变量都是一个可包含许多数字的数组。如果要访问数组的选定元素&#xff0c;请使用索引。 例如&#xff0c;假设有 44 矩阵 A &#xff1a; A [1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16] A 44 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 引…

python selenium.webdriver 爬取政策文件

文章目录 获取文章链接批量爬取政策文件应用selenium爬取文件信息数据处理导出为excel 获取文章链接 获取中央人民政府网站链接&#xff0c;进入国务院政策文件库&#xff0c;分为国务院文件和部门文件&#xff08;发改委、工信部、交通运输部、市场监督局、商务部等&#xff…

JavaScript 中 五种迭代数组的方法 every some map filter forEach

JavaScript 中 五种迭代数组的方法 every some map filter forEach 1.every 和 some2.filter (重点常用)3.map (灵活常用&#xff09;4.forEach (重点常用) ECMAScript 提供了 5个对数组的迭代方法 1.every() 2.some() 3.filter() 4.forEach() 5.map() 1.every 和 some every…

串联型PI和并联型PI调节器的比较

一、PI调节器的种类 图3-4 仿真波形变化情况&#xff08;串联型PI调节器&#xff0c;1500r/min&#xff09; 从图3-1到3-4比较可知&#xff0c;与并联型PI调节器相比&#xff0c;串联型PI调节器的超调量很小&#xff08;速度环&#xff09;&#xff0c;且动态过程时间短&…

从新的角度看待大模型微调

一、前言 一切要从最近大火的Lora(《LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS》&#xff09;说起&#xff0c;该文章在ICLR2022中提出。说的是利用低秩适配(low-rank adaptation)的方法&#xff0c;可以在使用大模型适配下游任务时只需要训练少量的参数即可达到一…

【SQL应知应会】表分区(二)• MySQL版

欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享&#xff0c;与更多的人进行学习交流 本文收录于SQL应知应会专栏,本专栏主要用于记录对于数据库的一些学习&#xff0c;有基础也有进阶&#xff0c;有MySQL也有Oracle 分区表 • MySQL版 前言一、分区表1.非分区表2.分区…

【运维】第03讲(下):Nginx 负载均衡常见架构及问题解析

Nginx 负载均衡常见问题 那么,Nginx 负载均衡的通常配置会出现哪些问题呢?这里列出几种比较常见的问题: 客户端 IP 地址获取问题域名携带问题负载均衡导致 session 丢失问题动态负载均衡问题真实的 Realserver 状态检测接下来,我们就重点讲解下 Nginx 作为负载均衡的这几个…

从代码角度戳一下springMVC的运行过程-spring16

1、首先页面需要输入地址&#xff1a; 2、画张图------ 这个地址先找Tomcat,而Tomcat帮你找你的工程 3、 4、每次都要过这个地方 这句servlet代码 具体流程是&#xff1a; SpringMVC的执行流程 这个Handler干嘛&#xff1f;负责对你的请求进行解析&#xff0c;知道我最终要找…

WAIC2023丨AI图像内容安全“黑科技”如何助力科技发展?

〇、前言 7月7日下午&#xff0c;2023世界人工智能大会&#xff08;WAIC&#xff09;“聚焦大模型时代AIGC新浪潮—可信AI”论坛在上海世博中心红厅举行。人工智能等技术前沿领域的著名专家与学者、投资人和领军创业者汇聚一堂&#xff0c;共同探索中国科技创新的驱动力量。 在…

latex3【排版】

多行公式排版&#xff1a;&#xff08;gather、align、split、cases&#xff09; \section{多行公式}%gather环境\begin{gather} abba \\ abcbaccbacab\end{gather}\begin{gather*} abba \\ abcbaccbacab\end{gather*}​\begin{gather} abba \\ 123 \notag …

贪吃蛇游戏制作

目录 前言 游戏设计 游戏三部曲 函数说明 优化设计 1 前言 终极目标&#xff1a;打造酷炫贪吃蛇游戏 制作环境: VS2015(支持VC2010,VS各个版本) easyx图形库(稍微改下VC6.0也可以实现) 2 游戏设计 贪吃蛇的制作思路就是蛇头带动蛇尾移动&#xff0c;主要…

记一次linux服务器k8s服务失败,重新安装centos系统并部署k8s以及服务【2023年7月15日】

周五&#xff0c;突然收到微信消息说&#xff1a;兄嘚~ 网站无法访问了&#xff01; 我以为就是普通的小问题&#xff0c;连上服务器看报错呢&#xff0c;执行kubectl get nodes [rootnode101 ~]# kubectl get nodes The connection to the server 127.0.0.1:6443 was refused…

FL Studio 21具有哪些功能?flstudio21会有什么新功能

FL Studio 21 是一个功能完备的音乐制作环境&#xff0c;能够进行多轨道音频录制、音序处理和混音&#xff0c;可以帮助用户创作专业质量的音乐轨道。 借助 VST 托管、灵活的混音器、高级 MIDI 和 ReWire 支持&#xff0c;您将轻松驾驭各种音乐风格。 歌曲或循环可以导出为 .wa…