求满足a+b+c=n的正整数有序三元组(a,b,c)的数量公式
嗨,你提到在看Paul Zeitz的书时卡在了习题6.2.23,这个问题完全可以用你想到的**星与条(Stars and Bars)**方法解决,咱们一步步理清楚:
问题:求满足 (a+b+c=n) 的正整数有序三元组 ((a,b,c)) 的数量公式。
你已经尝试了n=50的情况,这里先帮你厘清一下:如果是正整数解的话,n=50的正确结果应该是 (\binom{49}{2}),你之前得到的 (\binom{52}{2}) 其实是非负整数解的数量~ 不过没关系,咱们把这个思路推广到一般情况:
因为a、b、c都是正整数,我们可以先做个简单的变量替换:令 (a'=a-1),(b'=b-1),(c'=c-1),这样 (a',b',c') 就都变成了非负整数(也就是可以取0的整数)。
把替换后的变量代入原方程,就会得到:
[
(a'+1)+(b'+1)+(c'+1)=n
]
整理后简化为:
[
a'+b'+c'=n-3
]
现在问题就转化成了求这个非负整数方程的解的数量,而星与条的核心结论正好能用上:对于方程 (x_1+x_2+\dots+x_k=m)(其中每个 (x_i) 都是非负整数),它的解的数量是组合数 (\binom{m+k-1}{k-1})。
对应到咱们的问题里,变量个数k=3,m=n-3,代入公式就能得到解的数量为:
[
\binom{(n-3)+3-1}{3-1}=\binom{n-1}{2}
]
我们可以验证几个小值来确认:
- 当n=3时,只有(1,1,1)这1个解,(\binom{3-1}{2}=\binom{2}{2}=1),完全符合;
- 当n=4时,有序三元组有(1,1,2)、(1,2,1)、(2,1,1),共3个,(\binom{4-1}{2}=\binom{3}{2}=3),也对得上。
另外还要注意n的取值范围:因为a、b、c都是正整数,所以n必须是≥3的正整数;如果n<3,不存在这样的正整数三元组,数量就是0。
把组合数展开的话,公式也可以写成 (\frac{(n-1)(n-2)}{2}),两种形式是等价的。
备注:内容来源于stack exchange,提问作者JAB

