|
我们假设我们对面的人物单位为
辅助 15000血,被打伤害2500,
封系 17000血,被打伤害3500,
封系 17000血,被打伤害3000,
输出 13000血,被打伤害4000,
输出 13000血,被打伤害4000,
五个宝宝8000血,被攻击伤害5000
假设所有人物速度高于召唤兽,凌波点选输出攻击,如果倒地,点选目标随机,飞机、惊涛怒对6,4目标造成100%伤害伤害,浪涌对3目标造成70%伤害,裂石对一个目标造成100%,断岳造成180%,天崩造成270%,输出有70%到130%的随机波动
加入血量可能不满和可能有盾之类的效应全部抵消,认为他们都是满血的,
那么在100万次测试中,出现全部单位击倒的情况为 0
除了辅助以外的人全部被击倒的情况 为 5
除了辅助和耐封系,其他人全部被击倒的次数 55
双输出倒地的情况 3842
点选目标倒地的情况 573914
综上所述,风云再会,像谛听以后完全改变战局的情况,不太可能出现,甚至而言,压倒双输出的情况都非常难以出现。其中点选目标倒地的概率仅仅为57.3%,非常不稳定。凌波想依赖风云再会完成完全取胜几乎不太可能。
其中传说中七次飞机的概率为42亿分之一,将这个福分拿去抽强力球,足以买下整个网易。
下面为代码,有BUG可以提出
import random
shanghai = [4000,3500,3000,2500,4000,5000,5000,5000,5000,5000]
def lieshi(xueliang,order):
bodong = random.uniform(0.7, 1.3)
xueliang[order[0]] -= xueliang[order[0]]-shanghai[order[0]]*bodong
return xueliang
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
|
|