我正在寻找一种算法,找到所有的方式来表示整数n作为m(非负)整数的总和。我特别感兴趣的是m = 6和n⩽20。找到所有可能性的最快方式是什么(使用计算机,而不是手工)。如果可能的话,我只想看看六个整数的组合,顺序不相关(即[1,2,0,0,0,0]和[2,1,0,0,0,0 ]计为1个组合)。如何找到所有的方法来获得一个整数n为m个整数的总和(无序)?
最简单的方法是简单地尝试使用小于或等于20的6个整数进行所有置换,并且只添加总和为20的结果(如果我们不想查看顺序,则删除双精度) )。这似乎要花很长的时间,因为20^6的可能性需要很长时间才能检查。
什么是更有效的方法来解决这个问题?
提示:避免重复可以很容易,如果你在排序顺序生成它们来完成。如果你有m个数字来填充,以便他们总计为n并且数字是递增的,那么第一个数字有什么可能性? –