import random
l1=[]
for x in range(10000):
l1.append(int(random.normalvariate(50,20)))
l2=[(x,x+int(random.normalvariate(5,10)))for x in l1]
lnan1=[]
for x in range(10000):
lnan1.append(int(random.normalvariate(50,30)))
lnan2=[(x,x-int(random.normalvariate(3,5)))for x in lnan1]
def duibi(a1,b1):
lv=a1
ln=b1
l3=[]
l4=[]
for x in range(len(lv)):
if lv[x][0]>ln[x][1] and ln[x][0]>lv[x][1]:
pass
else:
l3.append(lv[x])
l4.append(ln[x])
#女性数列随机排列用于下一次比较
random.shuffle(l3)
return l3,l4
def cishuhoujieguo(n,a,b):
s1=0
s2=0
a,b=(a,b)
for x in a:
s1 += x[0]
s2 += x[1]
g=len(a)
d_1=s1//g
d_2=s2//g
print(('第%d后,剩余%d')%(n,g))
print('平均分',d_1)
print('平均要求',d_2)
return n-1,a,b
if __name__=='__main__':
a,b=duibi(l2,lnan2)
for x in range(200):
c,d=duibi(a,b)
a,b=duibi(c,d)
cishuhoujieguo(500,a,b)
print(a,b,c,d)
代码的核心思想是通过正太分布的随机数 给女性男性自身价值赋予随机分数
再给自己对方的期望价值赋予不同的分数,区别是女性期望更高,男性期望不变或者略低。
加入期望都符合 那就配对成功