![]() |
1
16
背包问题的这个特例叫做 Subset Sum . |
![]() |
2
9
C版 安装测试:
结果:
如果小计重复,将出现重复的结果(期望的效果)。实际上,您可能希望使用带有某个ID的subTotal Tupled,以便将其与数据关联起来。 |
![]() |
3
2
如果我正确地理解了你的问题,你有一组交易,你只想知道哪一个可以包含在一个给定的总数中。因此,如果有4个可能的事务,那么就有2^4=16个可能的集要检查。这个问题是,对于100个可能的事务,搜索空间有2^100=1267650600228229401496703205376个可能的组合要搜索。对于组合中的1000个潜在交易,它将增长到 10715086071862673209484250490600181056414011705336074437503883703510511249361224931983788156958127559467291755314682551871452856231404359845774698574803393456748242309854210746052371418779541821530474983581947376751655946077062914571196477654216760429831652624386837205668069376 必须测试的集合。暴力很难解决这些问题。 knapsack 问题。但即便如此,我也不确定你是否能在不使用暴力的情况下,生成所有可能的解决方案的完整枚举。 |
|
4
2
|
![]() |
5
2
|
![]() |
6
1
其类0-1背包问题是NP完全的,可在多项式时间内通过动态规划求解。 http://en.wikipedia.org/wiki/Knapsack_problem 但是在算法的最后,你还需要检查和是你想要的。 |
![]() |
7
0
|
![]() |
8
0
不是一个超高效的解决方案,但这里有一个coffeescript实现
这是一个例子
|
|
user4630731 · 引导表:Excel会计格式 10 年前 |