关于网友提出的“求一NET算术算法”问题疑问,本网通过在网上对“求一NET算术算法”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题:求一NET算术算法
描述:求一个NET算术算法,要求在N个数字中,对二个或多个数字做任意组合,使每个组合的值大于99且与99尽量相近,从而产生最多符合条件的组合。
例如有数字:30,70,55,60 四个数字,则我们可以直观的看出,30+70组合,55与60组合是最佳组合,产生了两组符合条件(值大于等于99)的组合。其他组合方式则只能产生一组。
但当有N个数字的时候,例如20个数值,怎么处理呢~?
解决方案1:求最优解,可以考虑遗传算法
解决方案2:是每个组合都尽量靠近99为优先还是组合数多为优先?
解决方案3:二楼的方法是可行的。
优化的方法用:
双向二分查找,后向两边缩放查找。
O(nlogn)
解决方案4:背包问题
解决方案5:先说个想法,把N数字从小到大排序,然后最大的加上最小的跟99比较,如果小于99, 就加第二小的
如果大于或等于99,就算一个组合,然后就倒数第二大的加小的,在比较,依此类推
只是个想法,还没写程序。
以上介绍了“求一NET算术算法”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/1065027.html