- 论坛徽章:
- 0
|
- def sumlist(list1):
- retsum=0
- for i in list1:
- retsum=retsum+i
- return retsum
- def getminutegap(a1):
- minutegap=[]
- for i in xrange(len(a1)-1):
- val1=a1[i]
- val2=a1[i+1]
- gap=abs(val1-val2)
- minutegap.append(gap)
- return minutegap
- def getmaxvalueindex(list1):
- maxv=max(list1)
- return list1.index(maxv)
-
- def dividelist(a1,b1):
- a1.extend(b1)
- aaa=[]
- bbb=[]
- a1.sort()
- a1.reverse()
- print a1
- while(len(a1)>1):
- maxgapindex=getmaxvalueindex(getminutegap(a1))
- if sumlist(aaa)<=sumlist(bbb):
- aaa.append(a1[maxgapindex])
- bbb.append(a1[maxgapindex+1])
- else:
- aaa.append(a1[maxgapindex+1])
- bbb.append(a1[maxgapindex])
- a1.remove(a1[maxgapindex])
- a1.remove(a1[maxgapindex])
- if (len(a1)>0) and (sumlist(aaa)<sumlist(bbb)):
- aaa.append(a1[0])
- aaasum=sumlist(aaa)
- bbbsum=sumlist(bbb)
- print aaa,aaasum,bbb,bbbsum,(sumlist(aaa)-sumlist(bbb))
-
-
- #dividelist([1,2,5,3],[6,7,8,9,10])
- #dividelist([300, 200],[ 150, 53, 12, 3])
- dividelist([10001,10000],[100,90,50,1])
- # 1001 1000 10 8 5 1
- # 1001 8 5 =1014
- # 1000 10 1 =1011
- # 1001 10 1 =1012
- # 1000 8 5 =1013
- dividelist([101,100],[10, 8, 5, 1])
- # 101 100 10 8 5 1
- # 101 8 5 =113
- # 100 10 1 =111
- # 101 10 1 =112
- # 100 8 5 =113
复制代码 |
|