【发布时间】:2015-09-04 01:30:53
【问题描述】:
我必须实现子集和问题的变体,我的输入将是正负十进制,我还需要知道子集,不幸的是知道它还不够。
我尝试了wikipedia 上的算法,但我无法让它们与负数一起工作,而且如果存在子集,我也找不到获取子集的方法。
谁能指出我在哪里可以找到该算法的一些伪代码、文档或实现。
【问题讨论】:
-
您检查过维基百科文章中的参考资料吗?你还在哪里搜索过?
-
时间重要还是有效?
-
这个 C# 版本带有回溯,它使用浮点数,您可能必须对其进行调整以避免浮点精度问题kunuk.wordpress.com/2012/12/25/backtracking-subset-sum-with-c 注意子集总和对于大输入可能会很快运行缓慢,因为它是 NP-完成
-
是的@Khashayar 时间很重要
-
现在我使用@Kunukn 博客文章作为基础(我也是C# 开发人员)我已经修改了代码以采用通用输入并使用十进制类型。此外,我还添加了一个停止配置以仅允许最大深度,这样至少我可以自定义它的执行方式。我知道问题是 NP Complete,所以我知道不可能知道所有可能的解决方案。如果你愿意,我可以把我的模组发给你,但我现在确定你现在会怎么做,
标签: algorithm dynamic subset subset-sum