第二类Stirling数(第二类斯特林数)

第二类Stirling数(第二类斯特林数)

  • 定义
  • 第二类Stirling数表示把 n n n个不同的数划分为 m m m个集合的方案数,要求不能为空集,写作 S ( n , m ) S(n,m) S(n,m).
  • 和第一类Stirling数不同,划分集合不必考虑排列次序。
  • 递推式
  • 考虑 S ( n , m ) S(n,m) S(n,m)可以由什么转移得到?
  • 1、 S ( n − 1 , m − 1 ) S(n-1,m-1) S(n1,m1),将 n − 1 n-1 n1个不同元素划分为了 m − 1 m-1 m1个集合,则第 n n n个元素必须单独放入第 m m m个集合。方案数:
    S ( n − 1 , m − 1 ) S(n-1,m-1) S(n1,m1)
  • 2、 S ( n − 1 , m ) S(n-1,m) S(n1,m),将 n − 1 n-1 n1个不同元素已经划分为了 m m m个集合,则第 n n n个元素可以放在 m m m个集合中任意一个里面。方案数:
    S ( n − 1 , m ) ∗ m S(n-1,m)*m S(n1,m)m
  • 则可以得出递推式:
    S ( n , m ) = S ( n − 1 , m − 1 ) + S ( n − 1 , m ) ∗ m S(n,m)=S(n-1,m-1)+S(n-1,m)*m S(n,m)=S(n1,m1)+S(n1,m)m
  • 三角形
n S ( n , m ) S(n,m) S(n,m)
01
10 1
20 1 1
30 1 3 1
40 1 7 6 1
50 1 15 25 10 1
  • 性质
  • 通过观察以上的三角形可以得到:
  • 1、 S ( 0 , 0 ) = 1 S(0,0)=1 S(0,0)=1
  • 2、 S ( n , 0 ) = 0 S(n,0)=0 S(n,0)=0
  • 3、 S ( n , 1 ) = 1 S(n,1)=1 S(n,1)=1
  • 4、 S ( n , n ) = 1 S(n,n)=1 S(n,n)=1
  • 5、$S(n,2)= 2 n − 1 − 1 2^{n-1}-1 2n11
  • 6、 S ( n , n − 1 ) = C n 2 = n ( n − 1 ) 2 S(n,n-1)=C_{n}^{2}=\frac{n(n-1)}{2} S(n,n1)=Cn2=2n(n1)
  • 更多请见百度百科
  • 应用
  • 各种不同的盒子放球模型:
  • 1、 n n n个不同的球放入 m m m个相同的盒子中,不允许盒子为空:
  • 方案数 = S ( n , m ) =S(n,m) =S(n,m),正是第二类Stirling数的定义。
  • 2、 n n n个不同的球放入 m m m个不同的盒子中,不允许盒子为空:
  • 方案数 = S ( n , m ) ∗ m ! =S(n,m)*m! =S(n,m)m!,盒子有区别,乘上盒子所有排列即可。
  • 3、 n n n个不同的球放入 m m m个相同的盒子中,允许盒子为空:
  • 方案数 = ∑ i = 0 m S ( n , i ) =\sum_{i=0}^{m}S(n,i) =i=0mS(n,i),枚举非空盒子个数即可。
  • 4、 n n n个不同的球放入 m m m个不同的盒子中,允许盒子为空:
  • 方案数 = ∑ i = 0 m P ( m , i ) ∗ S ( n , i ) =\sum_{i=0}^{m}P(m,i)*S(n,i) =i=0mP(m,i)S(n,i),因为盒子不同,所以乘上排列数。

更多

第一类Stirling数(第一类斯特林数)
Stirling数(斯特林数)第一类Stirling数&第二类Stirling数

  • 16
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Stirling插值积分是一种值积分方法,用于近似计算函的积分值。在Matlab中,可以通过以下步骤实现Stirling插值积分: 1. 首先,定义需要积分的函。假设我们要计算函 f(x) 的积分,可以在Matlab中定义一个函句柄,例如:f = @(x) x.^2; 2. 然后,确定积分区间的起始点 a 和终点 b,并指定插值节点的个 n。 3. 接下来,根据Stirling插值公式计算插值节点的 x 值和对应的 f(x) 值。可以使用 linspace 函生成等间距的插值节点,例如:x_nodes = linspace(a, b, n); 然后通过 f(x_nodes) 计算对应的 f(x) 值。 4. 利用Stirling插值公式计算积分近似值。Stirling插值积分公式如下: integral_value = h/6 * (f(a) + 4*sum(f(x_nodes(2:end-1))) + f(b)); 其中,h = (b-a)/(n-1) 是插值节点之间的间距。 5. 最后,输出近似的积分值 integral_value。 以下是一个完整的Matlab代码示例: ```matlab f = @(x) x.^2; % 定义需要积分的函 a = 0; % 积分起始点 b = 1; % 积分终点 n = 5; % 插值节点个 x_nodes = linspace(a, b, n); % 生成插值节点 f_values = f(x_nodes); % 计算插值节点对应的函值 h = (b - a) / (n - 1); % 插值节点间距 integral_value = h / 6 * (f(a) + 4 * sum(f_values(2:end-1)) + f(b)); % Stirling插值积分公式 disp(integral_value); % 输出积分近似值 ``` 请注意,这只是Stirling插值积分的一种实现方式,具体的实现方法还可以根据需要进行调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值