数论学习-组合数学再探

本文深入探讨了组合数学中的可重集全排列与组合数,介绍了如何计算含有类别的元素集合的全排列数量。接着,文章阐述了卡特兰数在二叉树计数中的应用,给出了递推式及通项公式。最后,简要提及了斯特林数的经典模型,包括子集划分和轮换划分问题。这些概念在计算机科学中有着广泛应用,如算法设计和组合优化。
摘要由CSDN通过智能技术生成

建议先看~

组合数学初步

一、可重集

1.1 可重集的全排列

可重集全排列是什么?
给定一个包含n个元素的集合,其中元素可以分为m类,(同类元素完全相同,不同类元素完全不同),第i类有ai种元素,现在要求出这个集合的全排列数量。
如何推导?
首先考虑组合数的推导过程:
我们知道对于n个元素选m个的情况,每个组合可以对应m!个排列,而每个排列唯一对应于一个组合,所以才有在这里插入图片描述
而对于这里可重集全排列如果不考虑类的概念,总的方案数显然是n!种,然后考虑第一类:每个全排列对应a1!种排列方案,第二类.第三类…第m类,类推有:n!除以ai的连乘
n ! ∏ i = 1 m a i \frac {n!}{\prod_{i=1}^{m} a_i} i=1main!

1.2 可重集的组合数

给定一个包含m类元素的集合,每类元素无限多,现在要求出从这个集合中选n个元素的方案数。
如何解?
考虑隔板法:
m类元素需要m-1个隔板,那么与n个元素共同占用n+m-1个位置,而隔板可以随便放,所以是
( n + m − 1 n ) \binom{n+m-1}{n} (nn+m1)
思考:如果限制每类元素的个数如何解决?

二、卡特兰数

2.1 二叉树计数

在这里插入图片描述

我们根据定义不妨记包含i个节点的本质不同的二叉树有 C i C_i Ci个,也称为形态数。
考虑平凡情况:当i = 0或i = 1,显然 C i = 1 C_i = 1 Ci=1
当i>=2时,考虑乘法原理
当左子树的节点数为i时,那么右子树的节点数为n-i-1。那么左子树的形态数为 C i C_i Ci,右子树的形态数为C_{n-i-1},所以,由乘法原理,当左子树有i个点时,总方案数为 C i C n − i − 1 C_iC_{n-i-1} CiCni1,
所以有:
在这里插入图片描述
上式即卡特兰数的递推式

下面给出卡特兰数的通项公式:
C n = ( 2 n n ) n + 1 C_n = \frac{\binom{2n}{n}}{n+1} Cn=n+1(n2n)

三、斯特林数

3.1 经典模型

3.1.1 子集划分问题

在这里插入图片描述
在这里插入图片描述

3.1.2 轮换划分问题

在这里插入图片描述
在这里插入图片描述

3.2

未完待续~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值