有两个序列a,b,大小都为n,序列元素的值任意×××数,无序;
要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小。



#!/usr/bin/env python
a = [1000, 999, 998, 997, 996, 995]
b = [994, 993, 992, 3, 2, 1]
#a = [3, 8, 11]
#b = [1, 2, 7]

x = y = 0
min = abs((sum(a)) - (sum(b)))
tag = 1
#num = 0
while tag:
   old = min
   while x < len(a):
       while y < len(b):
           a[x], b[y] = b[y], a[x]
#            num = num + 1
           print a
           print b
           tmp = abs((sum(a)) - (sum(b)))
           if min > tmp:
               min = tmp
           else:
               a[x], b[y] = b[y], a[x]
           y = y + 1
       x = x + 1
       y = 0
   if min == old:
       tag = 0
   else:
       x = y = 0
print min
#print num

(脚本见附近)