(1)问题描述:
一个含偶数个元素的列表如[1,2,3,4],将其划分为两个子列表,如[1,2]和[3,4],两者分别求和然后作差为(大的值减去小的值)(3+4)-(1+2)=4,但是4不是列表划分的最小差值,最小差值为(4+1)-(3+2)=0,问题就是求最下差值和划分的列表。
(2)实现过程如下:
1.关于列表的划分,设列表长度为n(n为偶数),划分为长度为(n//2)的两个子列表:
①先求阶层
#表示从m个元素中选择n个元素,随机选择(无序)
def qiujieceng(n,m):
a,b,c,d=1,1,n,m
for i in range(c+1,d+1):
a*=i
for i in range(1,c+1):
b*=i
return a//b
#有序选择
def qiujieceng2(n,m):
a,c,d=1,n,m
for i in range(c+1,d+1):
a*=i
return a
测试代码:
print(qiujieceng(3,6),end='\n')
print(qiujieceng2(3,6),end='\n')
结果:
20
120
②通过random模块的sample()函数完成在列表中选择随机数
#从长度为n的列表中随机取m个元素,将取出的m个元素重新赋值给一个list,返回列表list
def huafen(m,n):
list=[]