首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

问一个有关问题,求算法啊

2013-07-01 
问一个问题,求算法啊~题目是这样的:a,b两个数组, 长度均为N, 其中0a(i)C, b(i)a(i)-C, C为常数求一个和

问一个问题,求算法啊~
题目是这样的:
a,b两个数组, 长度均为N, 
其中0<a(i)<C, b(i)=a(i)-C, C为常数
求一个和的最小值,每次只能从一个数组取数,使和的绝对值最小。

例如:(C=1)
a: 0.5, 0.3, 0.2
b: -0.5, -0.7, -0.8

最小值为:0.5+(-0.7)+0.2 = 0。

求算法啊~
[解决办法]
Σai(m)  + Σbj(n)//a中取m个,b中取n个
=Σai(m)  + Σ(aj(n) - C)
=Σai(m+n)  - nC
题目意思其实就是取a中若干数使和与C的整数n倍最接近
目测01规划啊
复杂度不会低 

像你给的例子
0.5 + 0.3 + 0.2 = 1
所以b中任意选1个,其他的a中选 都符合要求 

热点排行