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

第二类斯特林数

定义

第二类斯特林数记作 \(\begin{Bmatrix}n\\ k\end{Bmatrix}\) 或者 \(S(n,k)\),其意义是将 \(n\) 个互不相同的元素划分为 \(k\) 个相同的非空集合的方案数。

朴素求解

\[\begin{Bmatrix}n\\ k\end{Bmatrix} =\begin{Bmatrix}n-1\\ k-1\end{Bmatrix}+k\times\begin{Bmatrix}n-1\\ k\end{Bmatrix} \]

如果前 \(n-1\) 个元素只使用了 \([1,k)\) 的盒子,那么第 \(n\) 个一定要放到第 \(k\) 个盒子里。

如果前 \(n-1\) 个元素用完了 \([1,k]\) 的盒子,那么第 \(n\) 个元素就可以随便放。

显然将两种方案加起来就是最终的方案。

容易理解上式的边界条件为 \(\begin{Bmatrix}0\\ 0\end{Bmatrix}=1\)

通项公式

\(G_i\) 表示将 \(n\) 个不同元素放入 \(i\) 个不同盒子允许为空的方案数,\(F_i\) 表示将 \(n\) 个不同的元素放入 \(i\) 个不同盒子不允许为空的方式。

那么显然:

\[G_i=i^n \]

同时还有:

\[G_i=\sum\limits_{j=0}^i {i\choose j} F_j \]

发现上面的式子和二项式反演一样,所以得到:

\[F_i=\sum\limits_{j=0}^i (-1)^{i-j}\times {i\choose j}\times G_i \]

\(G\) 带入并化简得到:

\[F_i=\sum\limits_{j=0}^i\dfrac{(-1)^{i-j}\times i!\times i^n}{j!\times (i-j)!} \]

因为斯特林数的盒子不一样,所以 \(F_k\) 就是就是 \(\begin{Bmatrix}n\\ k\end{Bmatrix}\)\(k!\) 倍,所以得到:

\[\begin{Bmatrix}n\\ k\end{Bmatrix}=\dfrac{F_k}{k!}=\sum\limits_{i=0}^k\dfrac{(-1)^{k-i}\times i^n}{i!\times (k-i)!} \]

因为 \(f(x)=x^n\) 是积性函数,所以可以 \(O(n)\) 预处理,\(O(1)\) 求解。

应用

当题目里出现 \(i^n\) 是可以用第二类斯特林数展开。

得到:

\[i^n=\sum\limits_{j=0}^n j!\times {i\choose j}\times \begin{Bmatrix} n\\j\end{Bmatrix} \]

把组合数展开然后约分得到:

\[i^n=\sum\limits_{j=0}^n \dfrac{i!}{(i-j)!}\times \begin{Bmatrix} n\\j\end{Bmatrix} \]

http://www.zskr.cn/news/12283.html

相关文章:

  • 扫码签到赢大奖小程序:助力多场景获客的智能营销工具
  • docker 镜像/容器
  • jmeter命令行参数详细解释
  • 神秘考试题
  • 华三交换机升级版本步骤
  • 企业级 AI 应用开发首选!JBoltAI 框架适配 Java 技术栈,稳定可靠
  • AIGS架构革命:JBoltAI如何重塑Java企业的AI服务生态
  • RAG技术赋能企业数智化转型:JBoltAI如何破解AI落地“最后一公里”难题
  • Java 团队转型 AI 开发难?JBoltAI 框架帮你节省 4-6 个月研发成本
  • IntelliJ IDEA 查找和替换使用指南 - 详解
  • 完整教程:探索 Event 框架实战指南:微服务系统中的事件驱动通信:
  • 全新升级~山海鲸4.5.12版本更新内容速递
  • Gitee DevOps:本土化工具链如何重塑中国技术团队的研发效能
  • 测试平台如何重塑CI/CD流程:从质量关卡到全流程协同的进化之路
  • TIA SIM 授权
  • DailyPaper-2025-9-26
  • qq
  • SimCC: a Simple Coordinate Classification Perspective for Human Pose Estimation
  • 10.1.1 启用python达成第一个遗传算法
  • Docker Docker Compose 完整入门与实用技巧 - 教程
  • PySide6 之鼠标事件写字板
  • 深入解析:golang基础语法(三)常量、指针、别名、关键字、运算符、字符串类型转换
  • 单B细胞技术如何实现兔单抗高通量高特异制备
  • 实用指南:Golang学习笔记: 常用标准库
  • 深入解析:Apache 生产环境操作与 LAMP 搭建指南
  • JAVA第一天
  • C# Avalonia 15- Animation- CustomEasingFunction
  • nginx平滑升级+location案例 - 教程
  • 深入解析:装备制造企业支撑智能制造的全生命周期数据治理实践
  • US$36 35160WT Adapter for CG Pro 9S12 Programmer