繁体   English   中英

查找不同数字组合的数量,以使其总和等于

[英]Finding the number of different combinations of numbers such that its total equals to sum

我想找出非负数的不同组合的数量(可以是任何数字,它不是固定的),以使其总数等于所提供的总和。

例如:我有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

我以一个例子为例: 使用三个数字查找整数的总数组合

但是问题在于它仅使用三个数字。

任何算法或代码都将很有用。 谢谢。

您可以将其视为将s个无法区分的硬币放入n个可区分的罐子中的方法数量。 (在示例中,s = 4和n = 3)。

如所解释这里 ,即在C(n + S-1,S-1),这在实施例给出了15。

如果顺序无关紧要,并且0也一样,例如示例链接中所示,则

n=total+1
k=number-1
binomial(k+n-1,k)  #combinations whith reptetitions
or
binomial(number+total-1,number-1)

如果您将数字5表示为

 1+1+1+1+1

并且必须找到3个整数的总和数
您会看到,必须在6个计算组合中进行2个切片,然后重复进行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM