带变量约束的Stars and Bars问题:求方程$a_1 + a_2 + a_3 +\dots+a_k=2021$的解数(含k的表达式)
带变量约束的Stars and Bars问题:求方程$a_1 + a_2 + a_3 +\dots+a_k=2021$的解数(含k的表达式)
你第一步的变量替换完全正确!接下来我们需要用容斥原理来处理每个$b_i≤8$的上限约束,这是带上下限的Stars and Bars问题的标准解法,我一步步给你理清楚:
首先明确解存在的前提条件
- 非负解要求$2021 -k ≥0$,也就是$k≤2021$,否则方程右边是负数,没有非负整数解。
- 每个$b_i≤8$,所以所有$b_i$的总和最大为$8k$,因此必须满足$2021 -k ≤8k$,化简得$9k≥2021$,即$k≥⌈2021/9⌉=225$(因为$9×224=2016<2021$,$9×225=2025≥2021$)。
- 结论:当$k<225$或$k>2021$时,方程没有符合条件的解,解数为0。
当$225≤k≤2021$时,用容斥原理计算解数
我们基于无约束的Stars and Bars结果,逐步修正违反上限约束的情况:
- 无约束的非负解数:
根据Stars and Bars公式,方程$b_1+b_2+\dots+b_k=m$的非负整数解数为$\binom{m+k-1}{k-1}$。这里$m=2021 -k$,代入后得到:
$$\binom{(2021 -k)+k-1}{k-1}=\binom{2020}{k-1}$$ - 容斥修正违反约束的解:
我们需要减去“至少一个$b_i≥9$”的解,加回“至少两个$b_i≥9$”的解,以此类推(因为减多的部分要补回来):- 对于第$t$次修正($t≥0$):
- 从$k$个变量中选$t$个,令每个选中的变量$b_i$替换为$c_i=b_i-9$(这样$c_i≥0$),此时方程变为:
$$c_1+c_2+\dots+c_t+\sum_{j \notin \text{选中集合}}b_j=2021 -k -9t$$ - 对应的解数为$\binom{(2021 -k -9t)+k-1}{k-1}=\binom{2020 -9t}{k-1}$
- 这部分的符号为$(-1)^t$(偶数次修正加,奇数次修正减),组合数为$\binom{k}{t}$(选$t$个变量的方式数)。
- 从$k$个变量中选$t$个,令每个选中的变量$b_i$替换为$c_i=b_i-9$(这样$c_i≥0$),此时方程变为:
- $t$的最大取值$t_{max}$:需要满足$2021 -k -9t ≥0$,即$t≤\lfloor \frac{2021 -k}{9} \rfloor$(当$2020 -9t <k-1$时,组合数$\binom{n}{r}=0$,所以超过这个范围的项自动为0)。
- 对于第$t$次修正($t≥0$):
最终解数表达式
- 当$k<225$或$k>2021$时,解数为$\boldsymbol{0}$;
- 当$225≤k≤2021$时,解数为:
$$\sum_{t=0}^{t_{max}} (-1)^t \binom{k}{t} \binom{2020 -9t}{k-1}$$
其中$t_{max}=\lfloor \frac{2021 -k}{9} \rfloor$。
备注:内容来源于stack exchange,提问作者ryan.zcd
相关产品推荐
相关产品推荐

