作业介绍

斯特林数

第二类斯特林数

也可以记做 Sn,kS_{n,k},表示将 nn两两不同 的元素,划分为 kk互不区分非空子集 的方案数。

递推式 Sn,k=Sn1,k1+kSn1,kS_{n,k}=S_{n-1,k-1}+k*S_{n-1,k}

边界 Sn,0=0S_{n,0}=0

考虑组合意义证明。

  • 将新元素单独放入一个子集,有 Sn1,k1S_{n-1,k-1} 种方案。
  • 将新元素放入一个现有的非空子集,有 kSn1,kk*S_{n-1,k} 种方案。

应用

  • nn不同 的球放入 mm相同 的盒子,不允许 有空盒子。正是第二类斯特林数

ii 个球,单独放入第 jj 个或者,和前面 i1i-1 个球放入前 jj 个里由于不同所有乘上了 jj

f[0][0] = 1;
for (int i = 1; i <= n; i++)
{
    for (int j = 1; j <= m; j++)
    {
        f[i][j] = f[i - 1][j - 1] + j * f[i - 1][j];
    }
}
cout << f[n][m];
  • nn不同 的球放入 mm不同 的盒子,不允许 有空,答案是 Sn,mm!S_{n,m}*m!

因为盒子也不同因此乘上盒子的阶乘。

ans = 1;
for (int i = 1; i <= m; i++) ans *= i;
f[0][0] = 1;
for (int i = 1; i <= n; i++)
{
    for (int j = 1; j <= m; j++)
    {
        f[i][j] = f[i - 1][j - 1] + j * f[i - 1][j];
    }
}
cout << ans * f[n][r];
  • nn不同 的球放入 mm相同 的盒子,允许 盒子有空,答案是 i=1mS(n,i)\sum_{i=1}^mS(n,i)

也就是在 ii 个盒子的方案数的和

f[0][0] = 1;
for (int i = 1; i <= n; i++)
{
    for (int j = 1; j <= m; j++)
    {
        f[i][j] = f[i - 1][j - 1] + j * f[i - 1][j];
    }
}
ans = 1;
for (int i = 1; i <= m; i++) ans += f[n][i];
  • nn不同 的球放入 mm不同 的盒子,允许 有空。每个球都有 mm 种选择,是 mnm^n
int ans = 1;
for (int i = 1; i <= n; i++) ans *= m;
  • nn相同 的球放入 mm相同 的盒子, 允许 有空。
for (int i = 0; i <= m; i++) f[0][i] = f[1][i] = 1;
for (int i = 0; i <= n; i++) f[i][0] = f[i][1] = 1;
for (int i = 2; i <= n; i++)
{
    for (int j = 2; j <= m; j++)
    {
        if (j > i) f[i][j] = f[i][i];
        else f[i][j] = f[i][j - 1] + f[i - j][j];
    }
}
  • nn相同 的球放入 mm相同 的盒子,不允许 有空。
for (int i = 1; i <= n; i++) f[i][1] = 1;
for (int i = 1; i <= n; i++)
{
    for (int j = 2; j <= m; j++)
    {
        if (i >= j) f[i][j] = f[i - 1][j - 1] + f[i - j][j];
    }
}
cout << f[n][m];
  • nn相同 的球放入 mm不同 的盒子,允许 有空。

插板法:Cn1m1C_{n-1}^{m-1}

  • nn相同 的球放入 m m不同 的盒子, 允许 有空。

给每个盒子一个球,然后插板。Cn+m1m1C_{n+m-1}^{m-1}

第一类斯特林数

也可以记做 Sn,kS_{n,k},表示将 nn 个两两不同的元素,划分为 kk 个互不区分的非空 轮换 的方案数。轮换就是环形排列

递推式 Sn,k=Sn1,k1+(n1)Sn1,kS_{n,k}=S_{n-1,k-1}+(n-1)S_{n-1,k}

边界 Sn,0=0S_{n,0}=0

考虑组合意义证明。

  • 将新元素单独放入一个子集,有 Sn1,k1S_{n-1,k-1} 种方案。
  • 将新元素放入一个现有的非空子集,有 kSn1,kk*S_{n-1,k} 种方案。
状态
已结束
题目
2
开始时间
2024-8-7 0:00
截止时间
2024-9-21 23:59
可延期
24 小时