首页 > 其他分享 >组合数学2

组合数学2

时间:2023-07-30 15:33:29浏览次数:36  
标签:方案 组合 stirling 钥匙 通项 数学 式子

上文:组合数学初步

Stirling 简述

Stirling formula

image

这是斯特林公式,我们可以利用它算出阶。比如卡特兰数)。

image

下面是正式的详细介绍:

第一类stirling数

把n个不同的人分成K个圆排列的方案数。

有两个重点:

  • 1.不用平均分。
  • 2.K个圆排列内部有序。
  • 3.每组不能为空

记法:
image

第二类stirling数

n个不同的人分成k组的方案数。

重点:

  • 1.还是不用平均分
  • 2.每组内没有排序
  • 3.每组不能为空

记法:
image

第二类stirling数

我们先研究第二类stirling数。
首先一个规定:
\(S(n,0)=0\)
不难得出:
\(S(n,1)=S(n,n)=1\)
请先尝试证明:
image

第一个式子:

首先n个元素自由选择,方案数是\(2^{n}\),取消顺序除以2。因为已经确定顺序,减掉1种全在第一组的情况就行。

第二个式子:

不难想出只可能有一组是两个人,其他都是一个人,没有区别。那从n个人里挑两个就行。

发现:

先暂缓证明后两个式子。我们发现当k接近n的时候,式子多是组合数,接近0时则幂较多,大胆猜想通项与这两者混合有关。

\(S(n,k)\)的通项

先看看递推

首先给出一个递推:
image

我们发现与n-1个人和n个人只差了一个人。考虑分类。

要么是新来的人自成一组(从S(n-1,k-1)来),要么是加入k组之中(从S(n-1,k)来)。那么上式不难得出。

但我们发现递推不好推通项,换个思路。

考虑容斥

我们允许有的组可以为空,那么方案数是\(k^{n}\),写成\(C_{k}^{0}* k^{n}\)。

我们考虑一个集合空的方案数(不考虑其他的空不空),那么方案数是$C_{k}^{1}* (k-1)^{n} $

同样的两个集合空的方案数:$C_{k}^{2}* (k-2)^{n} $

直到全空(显然不可能):$C_{k}^{k}* (k-k)^{n} $

根据容斥可以得到通项:
image

当然你可以二项式反演的,但我觉得这样好理解。

这个公式就可以解释当k接近n的时候,式子多是组合数,接近0时则幂较多。因为当k大的时候,\(\sum (k-i)^{n}\)接近n,基本只剩组合数。而k很小时\(\sum\) \(C_{k}^{i}\)很小,只剩下幂的形式。

一些式子:

通项推完了,看看我们能得到哪些东西。我们知道:\(S(n,n) = 1\),把\(S(n,n)\)带进这个式子,可以得出:
image

如果允许空的话,可以得出下式(其实是把容斥的过程中移项):
image

还记得之前的规定,\(S(n,0)=0\)吗?
现在我们可以给出一种理解。数学上有个Bell数,B(n)表示n个数的划分(随便几组),显然B(n)就是S(n,0)一直加到S(n,n),而B(0,0)=S(0,0),0个数显然没有划分方案,所以S(0,0)=0.

第一类stirling数

为什么要圆排列,给个背景。
有n个门,每个门对应一把钥匙。如果按正常的思路,要带n把钥匙就能把所有的门都打开,可能不能少带几把钥匙?其实只带一把就够了,把二号门的钥匙放在一号门内,以此类推。现在的问题相当于有n个门,k把钥匙,构成k组。k个组之间不能串联,也就是说不会出现拿着第一组的钥匙开了第二组的门。

于是又下面的公式(s是小写)
image

前面一半很好理解,后一半其实就是之前的n-1个门已经排好了,现在的门可以插在任意一个门的后面。

有下面的式子:
image
还有母函数:
image
是二项反演得到的。

标签:方案,组合,stirling,钥匙,通项,数学,式子
From: https://www.cnblogs.com/wangwenhan/p/17591515.html

相关文章

  • ZROI 学习笔记之数学相关
    都别催!!!等我有时间了例题和详细讲解都会补回来的!!!7.29数论基础你不会不知道吧首先,你要知道\[a\equivb\pmodp\]是什么意思。然后,\[\dfrac{a}{d}\equiv\dfrac{b}{d}\pmod\dfrac{p}{d}\]也是成立的。扩展欧几里得-ExGCD裴蜀定理:\(\foralla,b\in\mathbf{Z},\......
  • 济南 Day 6 数学
    SolutionT1回文数原题链接4093:回文数简要思路进位情况当所有数位都为\(9\)的时候才会进位,此时输出形如1000001的形式不进位情况如果\(n\)的前一半翻过来比后一半更大就直接把\(n\)的前一半翻过来贴在\(n\)的后面。否则就把\(n\)的前一半\(+1\)翻过来......
  • 力扣---77. 组合
    给定两个整数 n 和 k,返回范围 [1,n] 中所有可能的 k 个数的组合。你可以按 任何顺序 返回答案。 示例1:输入:n=4,k=2输出:[[2,4],[3,4],[2,3],[1,2],[1,3],[1,4],]示例2:输入:n=1,k=1输出:[[1]] 提示:1<=n<=201<=k<=n......
  • 组合数学
    入门:先介绍三个简单的技术插板法:直接插板:看下面的问题:eg1:\(x+y+z=20\),其中\(x,y,z\)为正整数,求有多少组解。我们考虑有\(20\)个球排成一排。我们插入两个板子把这\(20\)个球分成\(3\)个部分,其中第一部分的球的个数是\(x\)的大小,第二部分是\(y\),第三部分是\(z\)。这两个板......
  • 7.29 day6数学
    如果没问题就是300T1线性筛里,每个数都会被他最小的质因数筛到,令\(f(x)=[x\%p==0]\quadp\indangerous\)这显然是个完全积性函数,线性筛即可时间复杂度:\(O(n)\)T2考虑这棵树实质上是一个以1为根,边权为大于父亲边权的质数,节点值则为到根路径上边权累乘那么我们要求x,y之间......
  • odoo _register_hook和_patch_methods组合使用,实现日志功能,效果和java的切面类似
    _register_hook方法是在odoo启动,加载模块时调用,可以在调用期间对某个的模型进行功能增强,比如增加日志下面是一个简单的示例:classLog(models.Model):_name="cn.com.brandmax.log"_description="日志"def_make_read(self):defread(self,fields=N......
  • VuePress@next 使用数学公式插件
    VuePress@next使用数学公式插件搞了一个VuePress1.0的现在升级了一下,但是使用数学公式的插件老报错啊!经过不懈努力,终于搞定了。现在记录一下。VuePress介绍VuePress是一个以Markdown为中心的静态网站生成器。你可以使用Markdown来书写内容(如文档、博客等),然后VuePress......
  • 17. 电话号码的字母组合(letterCombinations)
    给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。答案可以按任意顺序返回。给出数字到字母的映射如下(与电话按键相同)。注意1不对应任何字母。示例1:输入:digits="23"输出:["ad","ae","af","bd","be","bf","cd","ce","cf"......
  • 最后的组合:K8s 1.24 基于 Hekiti 实现 GlusterFS 动态存储管理实践
    前言知识点定级:入门级GlusterFS和Heketi简介GlusterFS安装部署Heketi安装部署Kubernetes命令行对接GlusterFS实战服务器配置(架构1:1复刻小规模生产环境,配置略有不同)主机名IPCPU内存系统盘数据盘用途ks-master-0192.168.9.912450100KubeS......
  • Latex常用数学符号输入方法
    引用CSDN博文https://blog.csdn.net/qq_25368751/article/details/87888974......