诶,数学弱爆了..比赛时候没推出来
组合数学里的母函数(x+x^2+……+x^n)^m的展开式中x^k的系数
整理得x^m * (1-x^n)^m * (1-x)^(-m)就可以得到x^k的系数
#include <cstdio>
int main()
{
int n, m, k;
while (scanf("%d%d%d", &n, &m, &k) != EOF)
{
double ans = 0;
if (k < m)
{
printf("%.2lf\n", ans);
continue;
}
for (int i = 0; i <= (int)((k - m) / n); i++)
{
double tmp = (double)m;
for (int j = k - i * n - m + 1; j <= k - i * n - 1; j++)
tmp *= j;
for (int j = 1; j <= i; j++)
tmp /= j;
for (int j = 1; j <= m - i; j++)
tmp /= j;
ans += (1 - 2 * (i % 2)) * tmp;
}
for (int i = 1; i <= m; i++)
ans /= n;
printf("%.2lf\n", ans);
}
}
本文介绍了一种计算组合数学中特定形式母函数展开式中x^k系数的方法,并给出了一段C++代码实现,该方法涉及组合数学、级数展开及多项式系数计算。
125

被折叠的 条评论
为什么被折叠?



