22X0?Y02?x2t?yt
也就是说,在任何时候,双方的人数平方的差距不变。那么按照前面“战斗力之差保持不变”的规则,这里的战斗力必然包括了一种平方关系。在多人战斗情况下,假设单个单位的战斗力为FC,那么对于n个单位,其战斗力显然与n2*FC成正比例.这也就是著名的兰彻斯特平方定律。这个平方律反应了战斗中的一个规模效应。当作战单位以一定数量增加时,战斗能力以平方关系增长。 由上述公式,可以得到几个比较重要的推论:
1. n个战斗单位同时投入战斗,要比一个一个的投入战斗强的多。我们可以计算,
2
n个战斗单位同时进行战斗的战斗力总量正比于n*FC,而让他们前后投入战斗,战斗力总量正比于n*FC,这个结果我们也可以直观的理解,因为当1个单位在承受伤害的时候,其他的单位都在进行输出,自然总的战斗力就增大了。 2. 即使战斗双方的力量不均衡,只要弱势的一方成功的使得对方不能以全部兵力
投入战斗,那么也有可能分成几次战胜对手。在军事上,也就是要造成局部以多打少的战术观点,其数学含义其实是:a×a+b×b<(a+b)(a+b)。
举两个例子:
星际争霸中的飞龙互拚
双方等级相同不同数量的飞龙在操作的情况下互拚。(不考虑飞龙随时间的自然涨血),A方12条,B方10条。
战斗开始,可以预见,A将获得胜利,12×12-10×10=44,44开方得6.63。说明会剩下6到7条。
但是,如果B通过操作或者某种战术,使得A的飞龙6条6条的参加战斗。由于6*6+6*6<10*10,因此B将获得胜利,并且还可以剩下10*10-6*6-6*6=28.再开方,得到5.29,也就是说A将还剩下将近1半的飞龙,可以说是一个了不起的成就了。这也是在这类游戏在中操作或者战术的作用。
在CS对战中,
两个CT MP5 vs 三个T MP5,都是射击胸部。按照CS的一般情况,MP5大约6枪能够杀死一个人。
第一轮,两个CT中某个CT挨了3枪,T中某个人挨了两枪;
第二轮,一个CT挨了累计6枪,死了,T中那个受伤的人挨了4枪。 第三轮,剩下CT挨了3枪,倒霉的T挨了5枪。
第四轮,剩下的CT也挨6枪,死亡,那个最倒霉的T累计了6枪,也死亡。。
在一次舞会上,一位贵妇人问拿破仑:“你为什么总是能以少数的兵力战胜比自己力量大的强敌呢?”拿破仑说:“哪有这回事?每次我都是指挥优势的兵力战胜敌人的。”这段对话虽然简单,但却说出了一个非常深刻道理,从战术上来看,人多打败人少是一个客观规律,但是,要达成战术上的兵力优势却不一定需要在总兵力上占优势。
“故胜兵若以镒称铢,败兵若以铢称镒。”古代24铢为1两,24两为1镒,以镒称铢就是说要以敌人576倍的优势兵力彻底压倒敌人。当然,这个576倍是一种夸张的说法,但是孙子在这里想要表达的意思是非常明确的:达成胜利的一个重要因素就是要在数量上压倒
15
敌人。
简单的推广 假设X、Y的生命和攻击力都不相等,比如星际争霸中的机枪兵和刺蛇的互射(暂时不考虑兴奋剂、护士、刺蛇自然回血的影响)。我们可以看到,它们所引起的变化其实是杀伤力的变化,也就是P的变化,我们假设X方的杀伤力为A,Y方的杀伤力为B,不妨假设X会胜利(我们一会儿可以看到其条件是什么)。同样可以得到方程:
dx??By (1) dt
dy??Ax (2)dt解这个方程,可以得到: x=
X0?Y0-e2X0?Y0-e2ABt?X0?Y0e2X0?Y0e2ABt
y=
ABt?ABt
2AX0?BY02X0?Y0当t=时,y=0,Y方被消灭,此时X方还剩下。 lnA2ABX0?Y012也就是说,如果AX0?BY02>0,那么X将取得胜利,反之为Y。
同样,按照上面的数学计算方法,我们可以得到
222A(X0?x2t)?B(Y0?yt)
同样变形得到:
22AX0?BY02?Ax2?Bytt
我们看到,在杀伤力不同的情况下,每个单位的杀伤力同样对实力产生影响。并且在战斗过程中,每个单位的杀伤力与数量平方乘积的差不变。
如果我们对杀伤力进行分析,在上述例子中,比较X和Y方的战斗结果,只需要看:
dX*fXd*fY2 — Y?X0?Y02是否大于0
hpYhpX也就是要比较
22 — dY*fY?hpY*Y0 dX*fX?hpX*X0那么是不是我们可以定义:FCx?dX*fX?hpX*X0;FCY?dY*fY?hpY*Y016
22 呢?这里我们来看一看我们对于战斗力的定义。战斗力是在承受与输出的所组成图形的面积,那么我们做一个输出与承受的图,可以看到:
无论采用积分还是采用三角形面积计算方法,都可以很容易的得到,多单位的战斗力等
于(承受能力*输出能力)/2。对于有n个单位的战斗团体来说,承受能力=n*hp,最大输出能力=d?f?n,所以最终的结果是:
n2FC??d?f?hp
2那么对于刚才的情况,可以得到:
12?X0?dX?fX?hpX 21FCY??Y02?dY?fY?hpY
2FCx?X2dX?fX?hpX FCx/FCY?2?YdY?fY?hpY
只要对比FCX和FCY,就可以很简单的得到X和Y作战的战斗结果。在后面单单位与
多单位战斗过程的计算中我们可以看到,这一结论是继续适用的。
17
与前面的计算结果相比,我们可以看到,战斗力的公式其实并没有质的变化,只是它随着人数的平方关系增长。这对于游戏中促进玩家的组队是有非常有利的。 如果我们对比多人战斗过程与单人战斗过程的公式,我们可以看到,在单体战斗中,我们认为输出是恒定的,而在多单位战斗中,输出与承受之间存在着正比例关系。这正是兰彻斯特平方律的来源。在单人战斗过程中我们并非就不能产生这种平方律关系,只需要把攻击力正比于生命即可达到这个效果。
综合上面的所有过程,可以看到,多人战斗过程仍然贯穿了前面所提到的两个基本定律: 1. 战斗力是输出对承受的积分,特别地,在输出与承受无关的情况下,战斗力=输
出*承受。 2. 战斗过程中仍然是战斗力差值不变的过程。
离散化对战斗过程的影响 在离散过程下,同样的,会产生一定值的数据偏差,下面我们就来看这种偏差的影响因素。 来看一个最简单的例子,如果X方有100个单位,Y方有50个单位。按照连续情况下的公式计算可以得到,在战斗后,X可以剩下86.6个单位。
1. 如果双方的杀伤力都为1,也就是说任何一个单位都可以一次杀死另一个单
位,那么X可以剩下50个单位。(X方伤害溢出22个Y方单位生命力) 2. 如果双方的杀伤力都为0.5,X剩下75个单位。(X方伤害溢出0个Y方
单位生命力)
3. 如果双方的杀伤力都为0.3333,X剩下77.78个单位。(X方伤害
溢出34/3个Y方单位生命力)
4. 如果双方的杀伤力都为0.25,X剩下80.47个单位。(X方伤害溢出
35/2个Y方单位生命力) ......
通过以上的示例可以看到,在离散情况下,由于在最后一轮一定会产生攻击力的浪费,也就是战斗力的浪费,数值会产生一定的偏移,而且一定是向胜利者不利的方向偏移,杀伤力越小,离散情况越接近于连续过程。
额外分析:
在2.3.之间插入杀伤力0.4的情况,则X剩下76个单位 X方最后一轮伤害溢出22个Y方单位生命力
在1.2.之间插入杀伤力0.8的情况,则X剩下60各单位 X放最后一轮伤害溢出30个Y方单位生命力
18
第三节 单个单位与多个单位的战斗过程
在游戏中,除了单个单位的互相战斗和多个单位的互相战斗之外,还有一种情况,就是单个单位与多个单位的战斗,这种情况也是普遍的,玩家有时候会单人同时面对多个怪物,也会多人一起与一个boss进行战斗。这种情况当然可以看作多单位战斗的离散情况,但是要注意到,如果这样的战斗是实力接近的,比如一个玩家同时面临3个小怪,或者5个玩家同时面对1个boss,在这里,由于一方的数量很小(只有1个),离散化带来的影响已经不可以被忽略。因此有必要单独进行考虑。 这种模型下最大的特点在于不对称性。这里的不对称性在于:一方的输出是随着承受递减的,而另一方的输出则是恒定的。假设:
单个单位一方(x方)初始生命HX,伤害为Dx,频率为fx;
多个单位一方(y方)初始生命HY,伤害为DY,频率为fY;初始数量为Y0 可以得到数学方程:
dx??DY?fY?y dt
D?fdy??xx dtHY加上初始条件,t=0时,x=HX;y=Y0。要注意这里x,y的单位是不同的。x是生命
关于时间的变量,y是数量关于时间的变量。 解这个方程,可以得到:
x?DX?fX?DY?fY2?t?DY?fY?Y0?t?H0
2HYDx?fx?t HYHY?Y0的点,x
DX?fXy0?Y0?
x对时间的函数是一个二次曲线,y是一个递减的直线。并且在t?取到最小值,而y=0。图形如下,
19
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库战斗过程的基本数值知识与理论--网易(4)在线全文阅读。
相关推荐: