【发布时间】:2016-10-19 21:53:39
【问题描述】:
我需要找到所有数字子集以通过对其元素求和来获得一个数字 N。我不知道如何解决这种类型的组合问题。在这种组合中,不同数字的顺序很重要。
数字示例N=4
1 + 1 + 1 + 1
2 + 1 + 1
1 + 2 + 1
1 + 1 + 2
2 + 2
3 + 1
1 + 3
零对我来说并不重要。那么我怎样才能得到这样的数字集作为一个精确数字的数组呢?
【问题讨论】:
-
请澄清您的具体问题或添加其他详细信息以准确突出您的需要。正如目前所写的那样,很难准确地说出你在问什么。同时向我们展示你到目前为止所做的工作
-
看起来很像家庭作业。无论如何,你应该提供你迄今为止尝试过的东西,所以不会在没有部分尝试的情况下继续解决你的算法。
-
说这样的话很不礼貌。我正在尝试开发一款名为 101 OKEY 的土耳其游戏。游戏有 21 张牌,因此我给出了一个确切的数字。我需要这些组合来计算将瓷砖系列与不同点分开的最佳点。
-
您可以start with this answer,它会为您提供所有独特的结果。对该答案进行一些小的修改应该可以满足您的需要。
-
也可以看看partitioning (number theory)——你会在 google 上找到几个 C# 实现和实现它的方法。
标签: c# combinations subset-sum