注意这里讲的是斯特林数而非斯特林公式。

斯特林数分两类:第一类斯特林数 和 第二类斯特林数。 分别记为

首先描述第二类斯特林数

描述为:将一个有n件物品的集合划分成k个非空子集的方法数。

比如集合{1,2,3,4}有以下划分:

{1,2,3}U{4}   {1,2,4}U{3}   {1,3,4}U{2}   {2,3,4}U{1}  {1,2}U{3,4}   {1,3}U{2,4}  {1,4}U{2,3}.

7个这样的划分。

记为

那么有一下第二类斯特林数交给你计算。

根据定义,易得答案分别为:0,1,n,0.

之后考虑一个这样的式子

把一个集合划分为两个子集。

思路:

把最后一个元素拿出来。

这时有两种可能。1:最后一个元素自成一个集合。2:最后一个元素和前面的集合中一个子集为一个元素。

这种思想不只是用在k = 2的时候。扩展到全部的k上。

原理不讲。一方面是为了自己将来看的时候能够自己思考。另一外方面其实和推导的方法差不多。

List:

表格数据确实重要。有时候Stiring Number 说不定是藏在题目中 你发现不了的。而你可以通过打表大胆猜测。

1 7 6 1

1 15 25 10 1

1 31 90 65 15 1

值得记住。

再是描述第一类斯特林数

意义:轮换。即n个元素能够分成k个轮换。

轮换:即新的轮换不能通过旧的轮换进行数组移位得到。

[A,B,C,D] = [B,C,D,A] = [C,D,A,B] = [D,A,B,C].

上述都是表示同一个轮换。

而[A,B,C] 和 [A,C,B] 是两个不同的轮换。

比如n = 4. k=2时。

有11个轮换:

[1,2,3][4]  [1,2,4][3]  [1,3,4][2]  [2,3,4][1]

[1,3,2][4]  [1,4,2][3]  [1,4,3][2]  [2,4,3][1]

[1,2][3,4]  [1,3][2,4]  [1,4][2,3]

记为

另外对于n>0

这个式子易得。 n个元素全排列。对于一种排列有另外n-1种可以通过数组移位得到。所以归为1种。

即n!/n = (n-1)!.

另外还有以下性质。

注意是两类斯特林数的关系。

同样地,第一类斯特林数也有递推式。

重点是那个(n-1)的理解。

举个例子。

[1,2,3] 中添加 4 构成[1,2,3,4]

[2,3,1] 中添加 4 构成[2,3,1,4]

[3,1,2] 中添加 4 构成[3,1,2,4]

而前面的轮换都是属于一个轮换。而构成了3个不同的轮换。所以一定不像第二类斯特林数一样是k.

而这种情况可以发现。前面集合中的每个数都出现一次在集合的第一个位置。所以是n-1个。

List:

2 3 1

6 11 6 1

24 50 35 10 1

值得记在脑中。

另外对于轮换。我们可以和排列对应起来。

1 2 3 4 5 6 7 8 9

3 8 4 7 2 9 1 5 6

1->3 3->4 4->7 7->1 为一个轮换 [1,3,4,7]

2->8 8->5 5->2    为一个轮换 [2,8,5]

6->9 9->6                  为一个轮换 [6,9]

对于任意一个排列总是有一个轮换是对应的。由此我们可以列出。

另外在具体数学的后面有一个这样联系第一类和第二类斯特林数的式子

当然中间在具体数学里还有很多精彩美妙绝伦的证明以及推导。还有公式。具体就不列出来了。

just an introduction.

具体数学斯特林数-----致敬Kunth的更多相关文章

  1. 具体数学数论章-----致敬Kunth

    整除性(divisible): 引入了代表整除性. m\n (m|n) 表示m整除n.注意这里的整除.表示的是n = km(k为整数). 在整除性这里.m必须是个正数.也许你可以描述n 是 m 的k倍 ...

  2. 数学杂烩总结(多项式/形式幂级数+FWT+特征多项式+生成函数+斯特林数+二次剩余+单位根反演+置换群)

    数学杂烩总结(多项式/形式幂级数+FWT+特征多项式+生成函数+斯特林数+二次剩余+单位根反演+置换群) 因为不会做目录所以请善用ctrl+F 本来想的是笔记之类的,写着写着就变成了资源整理 一些有的 ...

  3. [BJOI2019]勘破神机(斯特林数+二项式定理+数学)

    题意:f[i],g[i]分别表示用1*2的骨牌铺2*n和3*n网格的方案数,求ΣC(f(i),k)和ΣC(g(i),k),对998244353取模,其中l<=i<=r,1<=l< ...

  4. [题解] LOJ 3300 洛谷 P6620 [省选联考 2020 A 卷] 组合数问题 数学,第二类斯特林数,下降幂

    题目 题目里要求的是: \[\sum_{k=0}^n f(k) \times X^k \times \binom nk \] 这里面出现了给定的多项式,还有组合数,这种题目的套路就是先把给定的普通多项 ...

  5. bzoj5093图的价值:多项式,斯特林数(二项式反演)

    Description “简单无向图”是指无重边.无自环的无向图(不一定连通). 一个带标号的图的价值定义为每个点度数的k次方的和. 给定n和k,请计算所有n个点的带标号的简单无向图的价值之和. 因为 ...

  6. hdu 4045 2011北京赛区网络赛F 组合数+斯特林数 ***

    插板法基础知识 斯特林数见百科 #include<iostream> #include<cmath> #include<cstdio> #include<cs ...

  7. HDU 4045 Machine scheduling (组合数学-斯特林数,组合数学-排列组合)

    Machine scheduling Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  8. 【HDU 4372】 Count the Buildings (第一类斯特林数)

    Count the Buildings Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Othe ...

  9. dp 斯特林数 HDU2512一卡通大冒险

    这道题其实就是斯特林数,找不同的集合,一共有多少中组法,递推式就是dp[n][k] = dp[n - 1][k - 1] + k * dp[n - 1][k]; 这个式子可以这么解释,dp[n][k] ...

随机推荐

  1. Yii2 使用 bootboxJS美化confirm窗口

    有些关键操作比如删除,我们在执行前一般先弹出来个confirm确认窗口. 在Yii2中为一个操作添加confirm确认很容易.只需在链接出添加一个‘data-confirm' => '确实要添加 ...

  2. python练习---小脚本

    一.爬子域名 #!/usr/bin/python # -*- coding: utf-8 -*- import requests import re import sys def get(domain ...

  3. Jupyter 安装并配置工作路径[转]

    1.通过python的pip方式安装jupyterpython和pip都安装好后,通过cmd进入命令提示窗口,找到python安装目录下的Script目录,例如我的是路径是:C:\Program Fi ...

  4. 人脸检测及识别python实现系列(1)——配置、获取实时视频流

    人脸检测及识别python实现系列(1)——配置.获取实时视频流 1. 前言 今天用多半天的时间把QQ空间里的几篇年前的旧文搬到了这里,算是完成了博客搬家.QQ空间里还剩下一些记录自己数学学习路线的学 ...

  5. “Hello World!”团队召开的第六次会议

    团队“Hello World!”团队召开的第六次会议. 博客内容: 一.会议时间 二.会议地点 三.会议成员 四.会议内容 五.Todo List 六.会议照片 七.燃尽图 一.会议时间 2017年1 ...

  6. TDGA-需求分析

    李青:绝对的技术控,团队中扮演“猪”的角色,勤干肯干,是整个团队的主心骨,课上紧跟老师的步伐,下课谨遵老师的指令,课堂效率高,他的编程格言“没有编不出来的程序,只有解决不了的bug”. 胡金辉:半两油 ...

  7. 第二次作业——个人项目实战(sudoku)

    第二次作业--个人项目实战(sudoku) 一.作业要求地址 第二次作业--个人项目实战 二.Github项目地址 softengineering1--sudoku 三.PSP表格估计耗时 PSP2. ...

  8. 周总结<1>

    由于都不清楚周总结的格式,所以就没有写了.不过,上次听了老师的课,觉得应该要好好写写了,至少今后可以明白自己有做过什么事情,至少不会觉得自己在各个方面没有收获.不过,可能没有按照格式来写.希望老师体谅 ...

  9. C#高级编程 (第六版) 学习 第五章:数组

    第五章 数组 1,简单数组 声明:int[] myArray; 初始化:myArray = new int[4]; 为数组分配内存. 还可以用如下的方法: int[] myArray = new in ...

  10. erlang随机排列数组

    参考karl's answer 1> L = lists:seq(1,10). [1,2,3,4,5,6,7,8,9,10] Associate a random number R with e ...