【发布时间】:2016-12-08 14:02:07
【问题描述】:
不确定以下情况属于背包问题还是硬币更换方法。想用PHP语言寻求这个问题的解决方案。由于不了解互联网提供的一些算法(文本理论),需要简单的解决方案。
给定一个表(A)如下:
TABLE (A)
---------
Item | Name | Price ($)
-------- ------------ --------------
1 | Adidas | 35
2 | Nike Run | 70
3 | Puma | 100
4 | Nike | 85
5 | NB | 65
- 结合表(A)中的3项中的任何一项,总和大于或等于200美元。
- 首先,对表 (A) 进行排序。
- 其次,获取最小/最小数量(价格)。在这种情况下是 35 美元。
- 第三,与其他金额一一核对。
- 第四,总结出3种大于等于200美元的组合可能性。
结果:
Item | Name | Price ($)
-------- ------------ --------------
1 | Adidas | 35
5 | NB | 65
3 | Puma | 100
给定另一个示例表(B)如下:
TABLE (B)
---------
Item | Name | Price ($)
-------- ------------ --------------
1 | Adidas | 5
2 | Nike Run | 35
3 | Puma | 110
4 | Nike | 65
5 | NB | 15
- 结合表(B)中的3项中的任何一项,总和大于或等于200美元。
- 首先,对表 (B) 进行排序。
- 其次,获取最小/最小数量(价格)。在这种情况下是 5 美元。
- 第三,与其他金额一一核对。
- 第四,总结出3种大于等于200美元的组合可能性。
- 第五,如果最小的和其他的组合起来,总和不到200美元,则取第二小的,重复第一步到第四步。
- 第六,在这种情况下,最佳最小值/最小值是 35 美元。
结果:
Item | Name | Price ($)
-------- ------------ --------------
2 | Nike Run | 35
4 | Nike | 65
3 | Puma | 110
【问题讨论】:
标签: php mysql algorithm sorting knapsack-problem