【发布时间】:2014-09-30 11:01:31
【问题描述】:
给定一个整数数组,A1、A2、...、An 和整数 P、C。
从数组 A 中找到一个计数 C 的整数集合,其中总和尽可能接近 P,并且应该使用尽可能多的元素。
例子
A = [3, 7, 2, 7, 25, 10, 5, 12, 1]
P = 15
C = 4
S1 = [3, 5, 7] = 15
S2 = [2, 5, 7, 1] = 15
S3 = [3, 5, 7, 1] = 16
S4 = [2, 7, 7] = 16
【问题讨论】:
-
听起来像是功课……
-
我可以确保它不是,它是一种算法,用于从交易中选择一组贵重物品以获得近似值。仅仅因为我没有以“我正在尝试”开始我的问题并不意味着这是家庭作业。
-
这是 NP 完备的(很容易显示从子集和的减少),因此对于大的 n 将没有可行的算法。
-
这就是我所担心的,A 的大小有时会很大有没有办法暴力破解或选择接近的东西,直到我们找到足够接近的值?
-
评估解决方案的函数是什么?例如,尚不清楚 S1(完美目标,但只有三个元素)是否比 S3(接近但四个元素)更好(或更差)。