我想找出非负数(可以是任何数字,不固定)的不同组合的数量,使其总和等于提供的总和。
例如:我有 3 个数字,我想找到不同的数字组合,使得总和为 4。num 的值从 0 开始。没有负数。
对于 3 个和为 4 的数字,组合是
2 0 2
2 2 0
0 2 2
0 1 3
3 1 0
0 3 1
1 0 3
1 3 0
3 0 1
0 0 4
4 0 0
0 4 0
2 1 1
1 2 1
1 1 2
我以这个为例:Finding the total number combinations for an integer using three numbers
但问题是它只使用了三个数字。
任何算法或代码都会有用。谢谢。
最佳答案
您可以将其视为将 s 个无法区分的硬币放入 n 个可区分的 jar 中的方法的数量。 (在示例中,s=4 和 n=3)。
如解释here ,即 C(n+s-1,s-1),在示例中给出 15。
关于c - 找到不同数字组合的数量,使其总和等于总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9365824/