首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >逻辑形式从一组数字中得到给定数字的最小UpperBound

逻辑形式从一组数字中得到给定数字的最小UpperBound
EN

Stack Overflow用户
提问于 2011-05-04 15:25:51
回答 1查看 98关注 0票数 0

我的问题是-

我有一些数字,如下所示-

代码语言:javascript
复制
  2
  2
  2
  2
  3
  3
 17
 17
 17
 17
 17
 17
 17
 17
 17
 34
 34
 34
 34
 34
 68
 68
 68
136

因此,如果我给出以下数字作为输入,输出应该如下-

输出是给定数字的和,它比输入的要大。

代码语言:javascript
复制
 Input  Output
     3      2,2
     4      2,2
     254    17,34,68,136
     7      2,3,3 [or also with 2,2,2,2 but if return same sum,
                   then number count should min]
     205    2,68,136
     10     2,2,3,3

我不只是想尝试每一个组合(即蛮力)来获得结果。因此,我只想问一问,在上述情况下,是否存在有效的算法。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2011-05-04 18:49:08

我找到了一个可能的起点维基百科

一个更普遍的问题要求将子集求和到指定的值(不一定为0)。通过对上述算法的简单修改,可以解决这一问题。对于每个xi为正且有相同常数有界的情况,Pisinger找到了一个线性时间算法。

您的基本问题看起来像一个扩展的版本。您需要找到集合的一个子集,即input --或者失败的、input+1的求和、失败的、input+2的求和等等。

所以,只要重复运行Pisinger的算法,增加目标和,直到得到结果?(我还没看过这篇论文,所以我不知道选择最小子集的决胜条件是否符合Pisinger算法。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5885858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档