黑蒙此帖及为人尚有争议,现转一帖,为黑蒙所驳者,至高天使长著
纸上谈兵,Heroes3兵种单挑排名
文:至高天使长
纸上谈兵,Heroes3兵种单挑排名(一):规则和理论基础
Heroes3里面有9大种族,每个族有14种兵种,再加上中立兵种,可谓兵种众多,热闹非凡。兵种一多,很自然的,有一个问题产生了:哪种兵种最强?或者更进一步说,两种兵种之间怎样比较谁更强?
最简单也最直观的一个办法就是看兵种的属性。比如农民的属性Att/Def/Dmg/hp
/sp:1/1/1/1/3,无论哪项属性都是最差,显见,农民是Heroes3最弱的兵种。
但是更多的时候,我们无法直观地从兵种的属性上看出谁更强,比如很相似的两种兵种:
金龙Att/Def/Dmg/hp/sp:27/27/4050/250/16
黑龙Att/Def/Dmg/hp/sp:25/25/4050/300/15
黑龙血厚金龙攻防高速度快,它们之间到底谁更强呢?一句棋逢对手、不相上下不是
我们寻求的最终答案。因此,有必要建立一套评判的标准来评定兵种实力的强弱。
一个很自然的办法就是将两种兵种拉来单挑,胜者说明实力更强。但是由于Heroes3里面绝大多数兵种的Dmg都是在一个范围内波动(天使、那加等少数兵种除外),这就使得单挑运气成分较大,一方连续几次高伤害就可能得胜,有人说多测几次看哪方胜率高不就行了,这固然是减小运气成分的一个办法,但是有时候胜率不相上下时比如上面的金龙和黑龙,它们之间的胜率非常细微,可能要测上几百次乃至上千次,非常繁琐,而且也不见得能够得出准确的结果。
更好的办法是NvsN,N是一个充分大的自然数,两方兵种各取N个分成一堆单挑,这样不仅可以有效减小运气成分,更可以杜绝“单挑王子”幽灵、桥梁怪的“作弊”行为(恢复hp特技使得它们同级兵单挑无敌,但这显然不是它们真实实力的反映)。
方法已经确定,下面就是建立规则了。
既然是兵种之间的单挑,那么
1、双方都不分堆且一切外界因素都应该尽量杜绝,比如英雄攻防指数、特技、技能、宝物、魔法、地形、士气和运气[注1]等等;
其次,双方都应该能选择自己的最佳策略,例如速度快的一方可以选择等待。但在数量较少的时候,由于原地防御可以增加防御力,这样原地防御一方可以占到优势(受伤害减少反击伤害不减),因此如果一方防御另一方势必也会无奈选择防御,这样子一回合就会被浪费,甚至会出现双方都一直选择防御的情况,这种消极比赛的态度是广大观众不愿见到的,因此我们规定
2、双方都可以选择自己的最佳策略,但都没有防御的权利。
这两点就是单挑应该遵守的基本原则。
在用实践得出结论之前,我们有必要先用理论来指导一下实践。我们的目的是尽可能地量化单挑两兵种之间的实力比,这无疑对实践有着积极的作用。下面我们以大天使和大恶魔这对天敌单挑为例来说明。
先来看看双方的基本属性:
天使Att/Def/Dmg/hp/sp:30/30/50/250/18
恶魔Att/Def/Dmg/hp/sp:26/28/3040/200/17
如果恶魔不是攻击不反击这场单挑根本没有任何悬念。但即便是恶魔攻击不反击,通过我们实际测试,天使也是完胜恶魔,不论是1vs1还是NvsN。我们的问题是天使的实力比恶魔强多少?
NvsN的结果必然是天使剩余一定数量,这说明如果恶魔数量再多一些天使依然有可能胜出,实际测试,5个天使就能赢6个恶魔——这说明天使的实力比恶魔至少强20%——这也启发我们,天使能够赢的恶魔的最大数量M与天使自身数量N的比值M/N就是双方的实力比的近似值。精确的叙述如下:
假设N个天使能赢M个恶魔但是不能赢M+1个恶魔(M显然是存在的),这样M是N的一个函数,记为M=f(N),f(N)即为N个天使能赢的恶魔最大数量,同时令g(N)=M+1=f(N)+1,g(N)即为N个天使不能赢的恶魔最小数量,h(N)=f(N)/N,则当N趋向于无穷大时h(N)的极限值P就是天使和恶魔的实力比(极限的存在性需要证明,见下文)。
由此得出如下结论:
、lim[f(N)/N]和lim[g(N)/N]同时存在,如果存在则两者相等。这里lim代表N趋向于无穷大时的极限。
如果P=lim[f(N)/N]存在,则lim[g(N)/N]=lim{[f(N)+1]/N}=lim[f(N)/N]+lim[1/N]=P,反之亦然。
②、如果n个天使可以赢m个恶魔,t个天使可以赢s个恶魔,那么(n+t)个天使可以赢(m+s)个恶魔;反之结论同样成立:m个恶魔可以n个天使,s个恶魔可以赢t个天使,那么(m+s)个恶魔可以赢(n+t)个天使。
这一条称作叠加性原理[注2],是整个推导过程的基础。
③、f(n1)+f(n2)+…+f(n)<><><=g(n1)+g(n2)+…+g(n)[注3]。 由于n1个天使可以赢f(n1)个恶魔但是不能赢g(n1)个,将n1换成n2,n3,…,n等一样成立,由②立即可得:n1+n2+…+n个天使可以赢f(n1)+f(n2)+…+f(n)个恶魔但是不能赢g(n1)+g(n2)+…+g(n)个,由f和g的定义立即得出不等式成立。="" ④、p="lim[f(N)/N]存在。" 证明需要用到数学分析的一些基础知识,若不感兴趣可以直接跳过。="" 由知只需证p="lim[g(N)/N]存在。" 首先g(n)/n有界。在③中令n1=""></=g(n1)+g(n2)+…+g(n)[注3]。><><=g(1),易见f(1)=1 ,g(1)=""></=g(1),易见f(1)=1><g()></g()><=2,即有界。 由于g(n)/n有界,故下极限和上极限均存在,设为p和q,则有两个无穷子列{ni}="" {mj}使得g(ni)/ni="">P,g(mj)/mj>Q,固定一个ni(>=2),对于所有的j,将mj写成如
下形式:
mj=uj*ni+vj,uj>=0,0<><ni,j=1,2,3,…></ni,j=1,2,3,…><=uj*g(ni)+g(vj),这里g(0)=0。由于vj只有ni种取值情况,故g(vj)有界t,从而></=uj*g(ni)+g(vj),这里g(0)=0。由于vj只有ni种取值情况,故g(vj)有界t,从而><=[uj*g(ni)+t] uj*ni)="" 令j="">∞注意到mj,uj>∞即得Q<=g(ni) i。="" 由于ni是任取的,故上式对于所有的i都成立,令i="">∞得Q<=p,从而上下极限相等,立知lim[g(n) ]存在(且等于上下极限)。=""></=p,从而上下极限相等,立知lim[g(n)><><g(n) ,f(n)="[P*N]。这里[]表示取整。" 在③中令n1=""></g(n)><><g(n),从而></g(n),从而><=f(*n)></=f(*n)><g(n) 再令="">∞由④得f(N)/N<><=g(n) ,结合下文要说明的p为无理数可知等号不会成立。="" 这个结论告诉我们可以用f(n)/n来作为p的近似值。=""></=g(n)><><p*n得出f(n)=[p*n]。 ⑥、p="1.24795…。" 令x="1天使对恶魔的伤害/1恶魔的hpy=1恶魔对天使的伤害/1天使的hp,则" x="(1+2*5%+50%)*50/200=0.4y=(14*2.5%)*(1+50%)*35/250=0.189" 这里将恶魔的dmg取为平均值35。="" 考虑*n天使vs*f(n)恶魔,这里是与n无关的待定参数。第一回合天使攻击,恶魔剩余b="*[f(N)x*N]个,用来保证恶魔数量恰为整数,然后恶魔反击再攻击," 第一回合结束,天使剩余a=""></p*n得出f(n)=[p*n]。><=f(a)b></=f(a)b><=f(a) 令n="">∞,注意到此时b/N>*(Px)a/N>*[12y*(Px)]a>∞,从而
b/a=(b/N)/(a/N)>[*(Px)]/{*[12y*(Px)]}f(a)/a>P
即有[*(Px)]/{*[12y*(Px)]}<=p。完全类似地考虑*n天使vs*g(n)恶魔,又有 [*(px)]/{*[12y*(px)]}="">=P
故[*(Px)]/{*[12y*(Px)]}=P。约掉,得到
(Px)/[12y*(Px)]=P(*)
解之,舍去负根,得
P=[x+(x^2+2x/y)^1/2]/2=1.24795…
这就是我们寻求的答案,说明大天使单挑实力超出大恶魔近24.8%。
方程(*)可以这样理解:P是一个使恶魔和天使双方实力均衡的数量比,先假设N个天使和M个恶魔实力绝对均衡(那么P=M/N),那么经过一个回合后这个均衡不会被打破,否则最后会有一方胜出从而说明双方实力不均衡;经过一回合后恶魔数量b=Mx*N天使数量a=N2y*(Mx*N)(亦不妨假定a,b都是整数否则可像上面一样同乘以),由于双方实力依然均衡,故:
b/a=P=M/N(**)
化简即为(*)式;可以看出,经过若干回合双方的实力会一直保持均衡,直到最后双方数量同时为0;但实际上因攻击有先后,必然有一方数量先变为0,这说明假设的双方实力绝对均衡是不可能的(由此亦可看出P不可能是有理数),但这时(*)式仍然是成立的,因为由⑤我们可以用f(N)/N来充分逼近P,
这时b/a也同样逼近P,双方极限相等,即可得出(*)式。这种求实力比的方法把它称作比值法。
上面6条就是理论的基础,其中叠加性原理又最为基础。可以推广到一般情况:两种兵种A与B,A对B的实力比记作P(A,B),B对A的实力比记作P(B,A),则P(B,A)=
1/P(A,B),P(大天使,大恶魔)=1.24795…。
不完全符合6条的即不满足叠加性原理的例外也有不少,比如幽灵和桥梁怪这种单挑王子,1幽灵肯定能胜1皇家狮鹫,但是无法推出10幽灵胜10狮鹫;还比如1吸血伯爵无法胜1蛮牛,但是不能由此推出100吸血伯爵不能胜100蛮牛,事实上100吸血伯爵可以完胜100蛮牛(甚至完胜100独眼),理由后文详述。但是在这些例外情况下,
上面的理论仍然具有指导性意义:当N充分大时,一回合单个幽灵恢复hp对于自身实力的补充是微乎其微的,
处理问题的时候可以理想化地将这点忽略,这样计算出来的P值虽然会有一定的误差但是不大,可以作为真实P值的一个近似值;考虑吸血伯爵的时候把吸血的特技考虑进去,计算出来的P值一样可作为近似值参考。这提示我们将兵种特技分为3类分别考虑:
a):对兵种单挑实力构成重大影响的不能忽略的特技,具有这些特技的兵种单挑时必须考虑其特技因素。比如前面的大恶魔攻击不反击特技,还比如十字军的攻击两次特技、吸血伯爵的吸血特技等等,不一一列举;对于攻击两次、吸血、死亡凝视、火盾等等这些A类特技,比值法都是普遍适用的,只不过处理起来稍微复杂一点。
b):对兵种单挑实力影响不大的可以忽略的或者考虑后将使问题变得异常复杂的特技,具有这些特技的兵种单挑时,为理想化和计算方便起见不妨将其特技忽略,计算出来的P值作为参考,采取理论和实践相结合的方式检验其实力。
比如前面的大天使士气+1特技,士气为1只有1/24的士气高涨几率,一是影响不大,二是考虑将会使问题变得非常复杂,故不妨忽略。这类特技有很多,还比如幽灵桥梁怪的恢复hp特技、美杜莎的石化特技等等,不一一列举;
c):对兵种单挑完全没有影响的可以直接忽略的特技,具有这些特技的兵种单挑时可以直接忽略其特技。这种情况我们只能说其实力不光体现在单挑方面,但本文只论述单挑实力,故恕不再讨论。这类特技也有很多,比如大天使的复活特技、黑龙的魔免特技、泰坦的免疫心智魔法特技等等,不一一列举。
以下是推广的几种一般情形,A代表速度更快的兵种,B代表慢速兵种,x和y的含义同上:
:AvsB,B一回合可攻击到A,A无a类特技,B有a类特技攻击不反击:
Copyright 2021宝石小说All Rights Reserved