首页 > 其他分享 >斯特林数学习笔记

斯特林数学习笔记

时间:2024-08-22 22:25:57浏览次数:3  
标签:overline frac 斯特林 sum 笔记 学习 brace EGF

定义

第二类斯特林数 \(n\brace m\) 表示 \(n\) 个两两不同的元素划分为 \(m\) 个互不区分非空子集的方案数;第一类斯特林数 \(n \brack m\) 表示 \(n\) 个两两不同的元素划分为 \(m\) 个互不区分非空轮换(可以理解为环)的方案数。

第二类斯特林数的递推式:\({n\brace m}={n-1\brace m-1}+m{n-1\brace m}\)。

第一类斯特林数的递推式:\({n\brack m}={n-1\brack m-1}+(n-1){n-1\brack m}\)。

第二类斯特林数 \(\bullet\) 行

用容斥原理和二项式反演可以证明:

\[{n \brace m}=\sum_{i=0}^m \frac{(-1)^{m-i}i^n}{i!(m-i)!} \]

可以用卷积计算,\(O(n\log n)\)。

第二类斯特林数 \(\bullet\) 列

一个集合装 \(i\) 个元素且非空的方案的 EGF:\(\sum _{i=1}^{+\infty} \frac{x^i}{i!}=e^x-1\)。

求它的 \(m\) 次方就得到 \(m\) 个集合的 EGF,也就得到一列的第二类斯特林数。

因为是 EGF,所以要乘上 \(i!\);因为集合互不区分,所以要除以 \(m!\)。

先 \(\ln\) 再 \(\exp\) 做多项式快速幂,\(O(n\log n)\)。

第一类斯特林数 \(\bullet\) 列

类似的,列出一个轮换的 EGF:\(\sum_{i=1}^{+\infty} \frac{(i-1)!x^i}{i!}=\sum_{i=1}^{+\infty}\frac{x^i}{i}\)。

这里乘以 \((i-1)!\) 是因为有 \((i-1)!\) 种轮换的排法。

同样求 \(m\) 次幂,\(O(n\log n)\)。

第一类斯特林数 \(\bullet\) 行

感觉是最难写的,也是 OI-Wiki 这四种中唯一一个没给代码的。

根据公式,构造同一行第一类斯特林数的生成函数:

\[\begin{aligned} F_n(x)&=(n-1)F_{n-1}(x)+xF_{n-1}(x)\\ &=\prod_{i=0}^{n-1}(x+i)\\ &=\frac{(x+n-1)!}{(x-1)!}\\ &=x^{\overline n} \end{aligned} \]

考虑倍增,\(x^{\overline {2n}}=x^{\overline n}(x+n)^{\overline n}\)。已经求出了 \(x^{\overline n}=f(x)=\sum_{i=0}^n a_ix^i\),要求出 \(f(x+k)\)。

\[\begin{aligned} f(x+k)&=\sum_{i=0}^na_i(x+k)^i\\ &=\sum_{i=0}^na_i\sum_{j=0}^i {i\choose j}x^jk^{i-j}\\ &=\sum_{i=0}^nx_i\sum_{j=i}^n{j\choose i}k^{j-i}a_j\\ &=\sum_{i=0}^n\frac{x^i}{i!}\sum_{j=i}^n \frac{k^{j-i}}{(j-i)!}j!a_{j} \end{aligned} \]

是一个差卷积的形式,时间复杂度是 \(O(n\log n)\)。

标签:overline,frac,斯特林,sum,笔记,学习,brace,EGF
From: https://www.cnblogs.com/fydj/p/-/stirling

相关文章

  • [数字人、虚拟人、PaddleBoBo、深度学习框架、PaddleSpeech、PaddleGAN、虚拟主播]踩
    注意:使用gpu版的paddlepaddle,cpu版的生成视屏动不动几个小时,让人怀疑人生飞浆网址:飞桨AIStudio星河社区-人工智能学习与实训社区(baidu.com)一:使用conda创建虚拟环境:python3.7.4condacreate--namepy374python=3.7.4二:安装paddlepaddle2.2.2我的电脑目前c......
  • 机器学习1
    机器学习简介定义ArthurSamuel(1959): Fieldofstudythatgivescomputerstheabilitytolearnwithoutbeingexplicitlyprogrammed. 将机器学习定义为  赋予计算机在没有明确编程的情况下进行学习的能力的研究领域。omMitchell(1998): Well-posedLearningPro......
  • 机器学习-KNN 算法
    一.K-近邻(KNN)K-近邻(K-NearestNeighbors,简称KNN)是一种基于实例的学习算法,主要用于分类和回归问题。KNN的工作原理直观且简单,它基于相似性进行预测,也就是说给定一个新的数据点,KNN算法会查找距离最近的K个数据点,然后通过这些邻居来确定新数据点的类别(在分类任务中)或......
  • 【机器学习】西瓜书第一章 绪论
    参考资料:[1]周志华.机器学习[M].清华大学出版社,2016.一、引言我们生活中存在许多基于经验做出的判断,比如月明星稀,那第二天可能会是好天气;一个西瓜敲起来声音响,色泽也不错,大概率是一个好瓜。我们做出这样判断的原因是我们观察到了很多月明星稀之后的好天气,吃到了很多符合......
  • Asp .Net Core 学习笔记
    Startup类ConfigureServices方法注册服务,并通过依赖注入(DI)或者ApplicationServices在整个应用中使用服务使用IServiceCollection的各种Add{Service}进行注册,例如,AddDbContext、AddDefault、AddEntityFrameworkStores和AddPages在Configure方法配置应用服务之前,由主机......
  • 机器学习/数据分析--通俗语言带你入门K-邻近算法(结合案例)
    ......
  • 基于nodejs+vue在线学习行为的学生课程预警研究与实现[程序+论文+开题]-计算机毕业设
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展,在线教育已成为教育领域不可或缺的一部分,它打破了传统教育的时空限制,为广大学生提供了更加灵活多样的学习途径。然而,在线学习环境的......
  • 从零开始学习C++之if判断语句
    当你想判断某个条件时,怎么办呢?当当当当(日常发疯),if语句就派上用场了。使用方法不多废话,使用格式如下:if(条件){ 代码}elseif(条件){ 代码}else{ 代码}注:elseif/else可以没有。这几个条件中只能满足一个。例:if(n==1){ cout<<1;}elseif(n==1)......
  • PCIe学习笔记(27)
    LinkStatusDependencies(链路状态依赖关系)DL_Down状态下的事务层行为DL_Down状态表示链路上没有与其他组件的连接,或者与其他组件的连接已经丢失,并且无法通过物理层或数据链路层恢复。本节指定了当DPC未被触发并且数据链路层向事务层报告DL_Down状态时,事务层的行为,表示链路不......
  • PCIe学习笔记(25)
    数据完整性PCIExpress的基本数据可靠性机制包含在数据链路层(dataLinkLayer)中,它使用32位的LCRC(CRC)码逐链路检测TLP中的错误,并采用逐链路重传机制进行错误恢复。TLP是一个数据和事务控制单元,由位于PCIExpress域“边缘”的数据源(如Endpoint或RootComplex)创建,可能通过......