首页 DotA中的数学原理

DotA中的数学原理

举报
开通vip

DotA中的数学原理DotA(V6.74c)中的数学原理DotA是一款基于暴雪《魔兽争霸3》的游戏。游戏中所直接使用的数学计算虽不复杂,但结合的具体情况越多,对其进行分析就会越困难。本文对此作出初步的探索。基本属性DotA中的每一个英雄,都有生命值(HP)、魔法值(MANA)、攻击力(按中文翻译看应该是ATK,但实际英文却是Damage,即物理伤害)、护甲、射程(分远程近战)这5个显然的基本属性,以及魔法抗性、生命回复速度、魔法回复速度、攻击速度、移动速度这5个非常重要而又不能在游戏界面中直接看到的基本属性。此外,还有攻击前/后摇、施...

DotA中的数学原理
DotA(V6.74c)中的数学原理DotA是一款基于暴雪《魔兽争霸3》的游戏。游戏中所直接使用的数学计算虽不复杂,但结合的具体情况越多,对其进行分析就会越困难。本文对此作出初步的探索。基本属性DotA中的每一个英雄,都有生命值(HP)、魔法值(MANA)、攻击力(按中文翻译看应该是ATK,但实际英文却是Damage,即物理伤害)、护甲、射程(分远程近战)这5个显然的基本属性,以及魔法抗性、生命回复速度、魔法回复速度、攻击速度、移动速度这5个非常重要而又不能在游戏界面中直接看到的基本属性。此外,还有攻击前/后摇、施法前/后摇、白天/夜晚视野、弹道这些不常考虑的基本属性等。此外,每个英雄还有三种英雄属性,力量、敏捷、智力。这三种英雄属性并不直接起作用,而是转换为基本属性再起作用。力量属性:每增加一点力量,增加19点生命值和0.03点/秒的生命回复速度。敏捷属性:每增加一点敏捷,提升1%的攻击速度,每7点敏捷增加一点护甲。智力属性:每增加一点智力,增加13点魔法值和0.04点/秒的魔法回复速度。主属性:每个英雄会把力量、敏捷、智力三者中的某一个当作主要属性,每1点主要属性会额外再增加1点攻击力。最后强调一下,为抓住主要矛盾,忽略次要矛盾,在不考虑英雄技能的前提下,直接影响一个英雄作战能力的基本属性是:生命值、攻击力、护甲、魔法抗性、攻击速度、移动速度。护甲两个英雄,不考虑技能的情况下,作战方式只有互A(攻击)。这时产生的伤害都是物理伤害。再简化一下,一个英雄承受物理伤害的能力,仅与自身生命值(HP变为0即为死亡)和自身护甲有关,甚至可以不考虑对方的攻击力与攻击速度等要素了。护甲公式(当a≥0时):0.06×add=×100%,a≥00.06×a+1式中,dd为伤害减少(DamageDecrease),a为护甲值(Armor)。使用MATLAB可以绘出曲线:a=0:50;dd=0.06*a./(0.06*a+1);plot(a,dd)显然,随着护甲的增加,伤害减少的曲线斜率在下降,因此伤害减少的收益会随着护甲的增加而减少。然而,仅仅对此下结论还太早,因为伤害减少并不是一个直接决定英雄承受物理伤害能力的指标,因为它的数值含义还不够明显。为简化思考中的变量,我们不考虑对手的攻击力,也不考虑自身的生命值,仅考虑:在自身拥有某个伤害减少的情况下,与伤害减少为0(护甲为0)相比,能够多承受几次攻击。1h=−11−dd1式中dd是伤害减少,1−dd就是剩余伤害,就是1次攻击变为几次攻击,所以1−ddh为额外攻击次数。当伤害减少为0(护甲为0)时,显然,打一下,是一下,额外攻击次数为0;当伤害减少为50%时,要造成等量伤害,打一下是不够的,要再打一下,额外攻击次数为1。如果绘出额外攻击次数h和护甲a的曲线:a=0:50;dd=0.06*a./(0.06*a+1);h=1./(1-dd)-1;plot(a,h)我们会惊奇地发现:这说明,随着护甲的提升,英雄低档物理伤害的能力是线性提升的。也就是说,不考虑游戏在计算时的四舍五入,在0点护甲时买一个守护指环(+2点护甲)和10点护甲时买,对物理伤害的减免能力应该是一样的,尽管伤害减少的提高不同。值得注意的是,这个h(额外攻击次数),也可以看成是等效额外物理生命(EquivalentExtraPhysicalHP)百分比。在仅考虑物理伤害的情况下,h=3(护甲为50)意味着4下攻击,造成护甲为0时1下攻击相同的结果,因此,可以把拥有50点护甲,看成是等效的额外300%的物理生命值。由于护甲与额外攻击次数的关系是线性的,因此每增加1点护甲,相当于增加6%点等效额外物理生命(不考虑游戏中的四舍五入)。举个例子:如果英雄已经拥有1000点HP和10点护甲,仅考虑提升承受物理伤害的能力,是应该购买活力之球(+250HP)还是板甲(+10护甲)?解:英雄此时具有的等效物理生命值为:EPHP=1000+10×6%×1000=1600如果购买活力之球,则等效物理生命值增量为:∆EPHP=250+10×6%×250=400增加了400点。如果购买板甲,则则等效物理生命值增量为:∆EPHP=10×6%×1000=600增加了600点,因此该选择板甲。当然,实际进行装备选择时往往答案是活力之球,这不仅仅是因为大家没有进行过上述计算,还因为实际游戏中还要考虑到魔法伤害、特定英雄技能、合成高级装备等多方面因素。不过,这里也充分展现了等效物理生命值(EPHP)这一概念的重要之处。当护甲为负数时,计算公式会有变化。伤害减少(其实是增加,以负数 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示)随护甲的变化为:⎧0.94−a−1,−201.2,1.2×1.2=1.44>1.4,这个结论可以严格地从均值不等式导出。以上介绍了如何计算、比较乘间秒伤的绝对增量与相对增量的方法。这些方法都很简单,在游戏中稍花一点时间就可心算完成。但是必须注意的是,这里不仅没有考虑敌方英雄的格挡(敌方格挡的效果可随己方攻击力的提升而下降),也没有考虑己方英雄的额外攻击伤害。额外攻击伤害额外伤害,大致分为暴击、击晕、连环闪电、反馈、减甲这五类。很多英雄技能有额外攻击伤害,这里仅从道具方面分析。英雄的相关技能的分析,方法类似。暴击水晶剑加35点攻击力,有20%的暴击概率和1.75的暴击倍率。大炮(暴雪弩炮)加81点攻击力,有25%的暴击概率和2.5的暴击倍率。发生2.5倍暴击相当于在1击中额外增加了1.5倍的攻击力,如果考虑25%的概率,相当于每1击都额外增加了1.5×0.25=0.375倍的攻击力。atk=[50100200300];atk1=atk+35+(atk+35)*0.75*0.2%水晶剑atk2=atk+81+(atk+81)*1.5*0.25%大炮(暴雪弩炮)攻击力50100200300加水晶剑85+13135+20235+35335+50加大炮131+49181+68281+105381+143如果有200点攻击力,购买一个大炮,表面上看攻击力变为281,实际上,从统计平均的角度看,相当于还额外增加了105点攻击力!从表中或公式中都可以看出,暴击的效果随着英雄攻击力的提升而增长。提升攻击力,会使乘间秒伤的绝对增量提升更多,但相比于没暴击的情况,增攻比、乘间秒伤增率却不变,后面与减甲一起分析。击晕击晕道具有碎骨锤(碎颅锤)和金箍棒。但前者击晕没有伤害,这里不考虑;而后者的合成配件标枪,虽无眩晕,但有伤害。金箍棒加88点攻击力,15点攻击速度,和克敌机先(攻击不会被闪避)技能与猛击(35%的概率造成100点额外伤害并眩晕0.01秒)技能。按统计平均算,相当于每一击增加了35点的额外伤害。近战英雄的猛击技能是法术攻击魔法伤害,无法伤害魔免单位,但能击晕魔免单位;远程英雄的猛击技能是英雄攻击普通伤害,伤害无视魔免算护甲,无法击晕魔免单位。对于远程英雄,金箍棒相当于每一击增加了35点额外攻击力,可以与暴击那张表相比。不考虑克敌机先技能,它不仅不如大炮,而且差距会越来越大。对于近战英雄,金箍棒相当于每一击增加了35点额外魔法伤害,不能直接与暴击比较,而应该先乘以敌法英雄魔法伤害承受百分比,再除以敌方英雄物理伤害承受百分比,才能换算回等效额外攻击力。在这两个参数都不明的情况下,只能说大概额外魔法伤害与其等效额外攻击力的数值差不多,差距就是两个百分比的比值。连环闪电拥有连环闪电的道具是漩涡和雷神之锤。漩涡加24点攻击力和25点攻击速度,击中目标后有25%的概率放出120点伤害的连环闪电跳跃4次。雷神之锤加24点攻击力和80点攻击速度,击中目标后有25%的概率放出160点伤害的连环闪电跳跃3次,冷却时间1秒。不考虑跳跃,漩涡每一击有30点额外魔法伤害,雷锤有40点(考虑冷却时间会略少些)。换算方法与近战金箍棒相同。反馈有反馈的物品有1级散失之刃和2级散失之刃。其中,1级散失之刃在击中目标的同时会减少目标20点魔法和等量伤害,2级则是36点。这种伤害与敌法师的法球技能类似,都是英雄攻击普通伤害,伤害无视魔免算护甲,可以看做额外攻击力。减甲能够减甲的道具有黯灭、强袭装甲、勇气勋章。以下着重介绍黯灭。黯灭加60点攻击力,攻击目标后,使目标减少6点护甲,持续5秒。强袭减少900范围内非友方单位5点护甲。勇气勋章主动点击使用,可使目标(及自己)减少6点护甲,持续7秒。根据前面对护甲的分析,在护甲为正的情况下,护甲越高,提升伤害减少就越难,但不计舍入,每点护甲都使额外攻击次数线性提升,每点护甲提高6%的等效物理生命值。减甲与加甲情况类似,但由于减甲能把护甲由正变负,因此必要把前面的图再画一下。a1=0:50;a2=-20:0;a3=-30:-20;dd1=0.06*a1./(0.06*a1+1);dd2=0.94.^(-a2)-1;dd3=-0.71+a3.*0;plot(a1,dd1,a2,dd2,a3,dd3)图中可见,护甲越接近0,减甲对伤害减少的减少效果越好,无论正负;护甲越高,减甲对伤害减少的减少效果越差;护甲减到-20,再减无益。(接上一段程序,否则无效。)h1=1./(1-dd1)-1;h2=1./(1-dd2)-1;h3=1./(1-dd3)-1;plot(a1,h1,a2,h2,a3,h3)额外攻击次数在护甲为正时随护甲线性减少,而在护甲为负数时则更慢速地非线性减少。两张图相同的结论是,护甲减到0附近就差不多了,再费力地继续减效果不佳。而不同结论则是在护甲为正时,究竟效果是不是线性的。如果只考虑一次物理攻击的情况,那么就该使用伤害减少这个概念。黯灭减少6点护甲后,敌方的伤害减少变化:a=0:50;dd=0.06*a./(0.06*a+1);a1=a-6;%中了黯灭后fori=1:51,ifa1(i)<0dd1(i)=0.94^(-a1(i))-1;elsedd1(i)=0.06*a1(i)/(0.06*a1(i)+1);endendplot(a,dd-dd1)这个图与护甲与伤害减少那张图的结论相同。由于减甲效果还与我方攻击力有关,应该是一簇曲线或三维曲线,下改为表的方式显示,在不同己方攻击力、不同敌方护甲下,黯灭的减6点护甲相当于多少点额外攻击力。clear;ATK=[50100200300];a=[06122030];dd=0.06*a./(0.06*a+1);dd1=0.06*(a-6)./(0.06*(a-6)+1);dd1(1)=0.94^(6)-1;%修正护甲为负ed=(dd-dd1)'*(ATK+60);%黯灭+60攻击后,减甲带来的额外物理伤害%把ed按照原护甲a,换算回攻击力[m,n]=size(dd);%算a的大小fori=1:n,eATK(i,:)=ed(i,:)/(1-dd(i));ended,eATK减甲带来的额外物理伤害列表如下:我方攻敌击力(+黯方护灭)50(+60)100(+60)200(+60)300(+60)甲03450811126294269951216254055201014233230681319把上表换算回额外攻击力:我方攻敌击力(+黯方护灭)50(+60)100(+60)200(+60)300(+60)甲03450811126405894130122942699520223151703016243853由于护甲为负数以后,减甲的收益会降低,所以第一行会比第二行小;而当护甲始终为正时,减甲6点,换算成额外攻击力后,数值不仅会随敌方英雄护甲增加而减小,还随己方攻击力的增加而增加;与大炮的暴击相比,黯灭的效果略差,但比其它三种强。网络传言:护甲越低,越应该提升护甲;护甲越低,被减甲的效果越可怕等等——这里都给出了一定的理论解释。不过需要纠正的是,敌方英雄的护甲被减到0就可以了,再继续减甲效果反而会相对降低。这样是按照单次攻击的情况来算的,如果敌方英雄被黯灭从满血打到死,那么无论其护甲多少,黯灭都减少了相当于其生命值36%的等效物理生命值,也就是攻击次数越多,减甲效果越来越与敌方英雄的护甲无关。综合比较额外伤害的这5类,按触发类型可分为两大类。暴击、击晕、连环闪电属于概率触发类额外伤害,而反馈、减甲属于稳定触发类额外伤害。对于概率触发类,往往有人认为,攻击速度越大,单位时间内的触发次数就越多,提升攻击速度比提升攻击力更有效。但这不完全正确。从统计平均的角度看,每一击增加的额外伤害是不随攻击速度而改变的。从概率触发的角度看,单位时间内只攻击一下,也有可能触发,一旦触发则会增加非常多的额外输出,若不触发,则会比统计平均少,输出不稳定,但常常有惊喜;提高攻击速度,只是让单位时间内的输出,更加趋近于统计平均,更稳定一点而已,提升攻击速度并没有提高等效额外攻击力。闪避对概率触发类额外伤害的触发概率有影响。eva=[0.250.35];p=[0.10.150.20.250.35];%有闪避后,等效概率变为pe=(1-eva)'*p10%15%20%25%35%25%7.5%11.3%15%18.8%26.3%35%6.5%9.8%13%16.3%22.8%此外,这5类额外伤害,按照与攻击力的关系,还可分为两大类。暴击、减甲的效果会随着己方攻击力的提升而提升,击晕、连环闪电、反馈则不会。从上面的数据可以看出,减甲与暴击对DPS的提升,比后三种强,而且随着己方攻击力提升,强得越来越多。而暴击与减甲都是随着己方攻击力的提升而线性提升,1对1情况下是可以等效的;而减甲的效果为团队共享,暴击则仅对技能拥有者一人有效。另外,当减甲与暴击同时存在时,减甲(也可包括其它三种)带来的等效额外攻击力不计入暴击,而暴击带来的等效额外攻击力,则可以计入减甲的等效额外攻击力中。∆ATK在计算增攻比时,减甲与暴击带来的等效额外攻击力随着己方攻击力的提升而ATK线性提升,因此约掉了,无论是否考虑减甲、暴击,增攻比不变。因此,已经具有暴击或减甲能力的英雄,并不是要优先提升攻击力,而是与普通英雄一样要比较增攻比和增速比。而击晕、连环闪电、反馈则不同。在已经具有这三种效果之一(或之二、连环闪电与反馈不能同时存在)后,实际ATK比显示值偏高。例如,英雄拥有1级散失之刃,则相当于拥有20∆ATK∆ATK点额外攻击力,显示值计算的增攻比,略大于实际增攻比。在权衡应该ATKATK+20提高攻击力还是攻击速度,即比较增攻比和增速比的大小时,增攻比偏高就相当于增速比偏低,所以拥有者3种技能的英雄应该比普通英雄多提高一些攻击速度。如果计算时使用实际增攻比,则它与增速比可以正常比较。虽然黯灭、暴击的效果强于击晕、连环闪电、反馈,但后三者还带有其它效果。击晕可以打断传送、施法、攻击并带来额外输出机会,连环闪电往往对多个单位起作用,反馈会损耗敌法单位的魔法值,这些都会对战局带来难以估量的影响。这些影响取决于触发频率(而不是统计平均),而触发频率会因为攻击速度的提升而提高,这才是敌法师、虚空假面这类英雄应该优先提高攻击速度而不是攻击力的真正理由。总体而言,不能说哪种最强,而是要看敌我双方的阵容、装备,以及对自己的定位,团战的打法等,来考虑如何选择装备。性价比性价比是DotA中使用频率最高的性能指标。它来源于生活,在DotA中也的确有一定的参考价值,但是存在严重的滥用趋势。具体表现为,什么都是性价比!说某个物品适合某个英雄,是性价比高;说某个技能前期升几级,还是性价比高……我个人无论是在生活中还是在游戏里,都不常用这个指标,因为深入分析会发现,这个指标不仅很难计算,而且往往不能作为道具选择的唯一 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 。把DotA中所有单纯增加攻击力的道具列表比较:攻击之爪阔剑大剑秘银锤恶魔刀锋圣者遗物圣剑道具攻击力91821244660300价格(G)450120014001600240038006200性价比0.020.0150.0150.0150.0190.0160.048显然,前三甲应该是圣剑、攻击之爪、恶魔刀锋。但这又能说明什么呢?要说被购买的频率,虽然没有在世界范围内做过统计,我目测圣者遗物的被购买频率应该比恶魔刀锋高,秘银锤也远超同性价比的阔剑、大剑,这主要是它们的可合成道具决定的,与性价比没有多大关系。性价比中的“价”,就是道具的价格,这是确定的;性价比中的“性”,则是道具的性能,这往往难以量化。以上那张表是可以列出的唯一一张比较长的表,其它的性能,例如攻击速度、护甲等,都太短了,只有两三个道具。DotA中比较重要的道具,大多都会增加英雄的多方面能力,很多甚至还附带特殊技能。此外,DotA中几乎每个英雄(只有唯一一个例外)都只有6个格子来放道具。因此,性能的量化有3大难题:1.多属性难于统一量化标准;2.道具附带的技能值多少钱;3.省一个格子值多少钱。在我看来,这3大难题几乎是不可解决的。不过,DotA的作者Icefrog似乎已经解决了,因为他给出了所有道具的性能和价格。与其相信,Icefrog是精通经济学原理的顶尖达人、创造出了很多秘密公式来量化性能,我更相信他是一个优秀的DotA道具市场的观察者,通过统计与分析来调整性能和价格。一次次的版本更新,都显示着他对性能与价格的调整;每一次改动的反复,都代表他推翻了自己原先的想法。性价比的难于计算,直接导致其应用领域狭窄。只有在确定需要某种属性时,才能忽略其它属性,计算性价比。例如,敌方物理输出强大,我方应该考虑物理防御时,是选择提高生命值、护甲、格挡、闪避还是其他,就需要对等效物理生命值或等效护甲这些指标进行计算,才可以联系价格进行比较,真正使用性价比。而如果局势的发展需要某个道具的技能,例如原力法杖的弹射,而这个道具的价格在可以接受的范围内,那就攒钱购买吧。与其纠结于性价比,不如多补几个刀。本文提出的诸多量化的性能指标,可以看作对性价比的“性”的量化尝试,也可以认为是为了绕过性价比这一模糊概念、为装备选择直接提供数据支持的努力。结论与展望本文对DotA中一些基本属性进行了分析,或借鉴或原创地提出了一些概念和简单的心算方法,为游戏中进行装备选择提供了一定的理论依据和数据支持。限于篇幅和精力,本文并未分析DotA中的每一个道具和每一个英雄技能,还有英雄技能间、技能与道具间、道具与道具间的配合效果等,不过方法都已经介绍了。DotA这个游戏,绝大部分 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 是确定的,除了少量BUG以为,只有两个方面为游戏带来了不确定性:伪随机数和游戏者。遗憾的是,这里并未对游戏中的伪随机数进行深入分析(水平不足),也未对游戏者的行为规律作出研究(超出了数学的范畴)。概念解释额外攻击次数:相对于护甲为0的情况下攻击1次的伤害,在护甲为n时,为达到等量伤害,要对目标额外攻击多少次。等效额外物理生命百分比:目标在护甲为n时,与护甲为0相比,其承受物理伤害的能力,相当于额外获得了相对于原生命值多少倍的生命值。其数值就是额外攻击次数百分数化。等效额外物理生命值:目标在护甲为n时,与护甲为0相比,其承受物理伤害的能力,相当于额外获得了多少点生命值。其数值等于额外物理生命百分比乘以实际生命值。等效物理生命值:目标在护甲为n时,其生命值相当于护甲为0时的多少点。其数值等于等效额外物理生命值加原生命值。等效护甲:格挡、闪避等类护甲的效果,其抵挡物理伤害的能力等价于多少点护甲。等效魔法生命值:目标承受魔法伤害的能力,相当于多少点生命值的小兵(魔法抗性为0)。秒伤(DPS):每秒可以造成多少物理伤害。乘间秒伤:秒伤乘以英雄的攻击间隔。乘间秒伤增量:乘间秒伤随着攻击力或攻击速度的增加而产生的数值增量。乘间秒伤增率:乘间秒伤随着攻击力或攻击速度的增加而增加后,相比原来的倍率。秒伤增率:秒伤随着攻击力或攻击速度的增加而增加后,相比原来的倍率。BAT不变时,等价于乘间秒伤增率。增攻比:攻击力的增量与增加前攻击力的比。增速比:攻击速度的增量与增加前攻击速度加100的比。等效额外攻击力:攻击中的额外伤害,折算成造成等量伤害的攻击力。等效概率:攻击命中概率触发类的效果在有闪避的情况下,等价于无闪避情况下的概率大小。参考文献11对战平台资料库(注意这里面的信息落后于当前版本)《基于dota游戏中护甲的建模与稳定性分析》《先锋盾之极致研究,你了解的有多少?》《天下武功唯快不破DotA各类速度数据解析》《Dota金箍棒、晕锤、重击技能叠加情况》……晏启东西安电子科技大学技术物理学院2012年5月13日
本文档为【DotA中的数学原理】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥15.0 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
中小学教育资料汇总
暂无简介~
格式:pdf
大小:1MB
软件:PDF阅读器
页数:23
分类:互联网
上传时间:2023-02-27
浏览量:17