首页 新闻 搜索 专区 学院

求大神指导一个计算问题

0
悬赏园豆:50 [已关闭问题] 关闭于 2013-07-09 15:01

现有两个数组分别为:
a{21,26,29,31,32,36,25,34,26}
b{66,31,76,57,89}
求:
result=0;
for(j=0;j<a.count;j++)
{
result=result+(b[i]-a[j])
注:b[i]根据下面约束条件自己组合
}
求result最小值

计算举例:
result_1=(b[0]-a[0])+(b[1]-a[1])+(b[2]-a[2])+(b[0]-a[3])+(b[2]-a[4])……+(b[0]-a[8])
……
result_n=(b[2]-a[0])+(b[0]-a[1])+(b[4]-a[2])+(b[2]-a[3])+(b[0]-a[4])……+(b[2]-a[8])
即求以上result最小值。
注:b[i]的顺序不同,计算的结果也不同。

约束条件:
1,b[i]>a[j]

2,b[i]可以复用,a[1]不可复用,例如:b[0]-a[0]=45,则b[0]=45,然后可以用b[0]-a[3]=14,但不能重复使用a[0]。

3,b[i]-a[j]如果20<a[j]<30,b[i]在第二次复用的时候只能b[i]-a[j](a[j]>30),反之亦然。如上例:b[0]-a[0]=45,此时a[0]为20<21<30,所以在复用b[0]时可用b[0]-a[3]=14,此时a[3]为31.

4,只有当b[i]-a[j]<数组a中所有数时,b[i]-a[j]结果才计入sum(b[i]-a[j])中,如上例中b[0]-b[3]=14才计入求和结果。

5,数组a中数字必须全部用一遍,数组b可以任选几个。

意林的主页 意林 | 初学一级 | 园豆:68
提问于:2013-03-26 20:24
< >
分享
所有回答(2)
0

你杀了我吧,看了十分钟,完全看不懂你的约束

朝曦 | 园豆:1073 (小虾三级) | 2013-03-27 09:58
0

好吧,我自己也说不清了,公司牛人解决了

意林 | 园豆:68 (初学一级) | 2013-07-09 14:43
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册