【发布时间】:2010-11-15 05:02:42
【问题描述】:
这是我在使用会计系统时似乎遇到的一个问题。
我有一组交易,但它们的总和不等于会计部门认为应该的金额。他们不是在质疑数学,只是在质疑交易:p
是否有一种算法可以帮助我确定不应该包含集合中的哪些交易以使总和与给定金额匹配。
Given Set:
2
4
5
7
Given Sum Amount:
13
Result Set:
2
4
7
编辑: 集合中的事务少于 100 个。有没有人有一个 C# 示例,因为Solving the NP-complete problem in XKCD 问题上没有一个示例?
伙计,我应该获得计算机科学学位。
【问题讨论】:
-
这里的服务员也提出了同样的问题:xkcd.com/287,这里有一堆潜在的解决方案:stackoverflow.com/questions/141779/…
-
正如其他人所说,这是无法做到的。但是,如果您可以找到一种方法来根据特定于您的数据的内容减少搜索空间,那么您可能会做得更好。但是我们都没有足够的信息来帮助解决这个问题......而且它可能不容易提供给我们,即使假设你被允许这样做。
-
布赖恩,我认为没有人说它不能完成,只是会很难(但我想我知道你想说什么)。
-
@erich 实际上,想出一个可以找到答案的算法并不难。只是可能需要很长很长时间。几乎可以说该解决方案实施起来很简单。
-
@tim:我的意思是“难”是一个双关语,不是很难找到算法,而是找到解决方案。 NPC - NP-Hard - 你明白我的意思。
标签: c# algorithm np-complete np-hard