def duanyue(xueliang,order):
bodong = [random.uniform(0.7,1.3) for _ in range(2)]
xueliang[order[0]] = xueliang[order[0]]-shanghai[order[0]]*bodong[0]-shanghai[order[0]]*bodong[1]*0.7
return xueliang
def tianbeng(xueliang,order):
bodong = [random.uniform(0.7,1.3) for _ in range(3)]
xueliang[order[0]] = xueliang[order[0]]-shanghai[order[0]]*bodong[0]-shanghai[order[0]]*bodong[1]*0.9-shanghai[order[0]]*bodong[2]*0.7
return xueliang
def langyong(xueliang,order):
bodong = [random.uniform(0.7,1.3) for _ in range(3)]
for i in range(min(3,len(order))):
xueliang[order] -= shanghai[order]*bodong*0.7
return xueliang
def jingtao(xueliang,order):
bodong = [random.uniform(0.7,1.3) for _ in range(4)]
for i in range(min(4,len(order))):
xueliang[order] -= shanghai[order]*bodong
return xueliang
def fanjiang(xueliang,order):
bodong = [random.uniform(0.7,1.3) for _ in range(6)]
for i in range(min(6,len(order))):
xueliang[order] -= shanghai[order]*bodong
return xueliang
def gongji(xueliang,zhaoshu):
order = []
for danwei,xue in enumerate(xueliang):
if xue>0:
order.append(danwei)
if len(order) == 0:
return xueliang
if order[0]!=0 and len(order)>1:
index = random.randint(1,len(order)-1)
num = order[index]
order.pop(index)
order.insert(0,num)
if zhaoshu == 1:
return lieshi(xueliang,order)
if zhaoshu == 2:
return duanyue(xueliang,order)
if zhaoshu == 3:
return tianbeng(xueliang,order)
if zhaoshu == 4:
return langyong(xueliang,order)
if zhaoshu == 5:
return jingtao(xueliang,order)
if zhaoshu == 6:
return fanjiang(xueliang,order)
def fengyunzaihui():
xueliang = [13000,17000,17000,15000,13000,8000,8000,8000,8000,8000]
dianshu = 0
while dianshu<=6:
zhaoshu = random.randint(1,6)
xueliang = gongji(xueliang,zhaoshu)
dianshu += random.randint(1,5)
for i in [0]:
if xueliang>0:
return False
return True
res = 0
for i in range(1000000):
if fengyunzaihui():
res+=1