最近法师的节奏带的有点凶,我觉得有必要强调一下数学的重要性了。我之所以选择奥法是因为奥法的循环最简单,完全的线性模型,只要算清楚就能打好。没有火法那种连续暴击才能触发的非线性系统。
(说是奥数班,这堂课的主要内容放在高考练习卷北京卷倒数第二题比较合适。考察同学们从实际问题中抽象数学模型,并用合适的数学工具去解决的能力。并没有使用超纲知识,除了后面计算的时候数字有点复杂之外。)
人物属性
属性名称 | 符号(和值) | 说明 |
法术强度 | sp | 法术强度 等于 智力 |
精通 | M | 提升法力值和法力回复速度M。此处使用百分比而非绿字下同 |
急速 | H | 施法速度变为原来的1/(1+H) |
爆击 | C | 法术有C的几率造成200%伤害 |
全能 | V | 所有伤害变为原来的(1+V)倍 |
飞弹触发率 | Rm | 技能触发飞弹的概率,基础值15%,神器圣物、天赋等可以提高几率。奥冲触发率翻倍,目前普遍认为也作用于提高值。 |
回蓝 | R=0.015 | 测试经过66.6秒后从空蓝回满,认为秒回1.5% |
四种基础技能参数
技能名称 | 脚标 | 伤害 Damage | 蓝耗 Mana Cost | 耗时(秒) Time Cost |
奥冲4 | h | Dh = 2.1414*sp Dh*(3.4+2M) | Ch = 600%*3% = 0.18 | Th = 2.25 |
飞弹4 | m | Dm = 2.9587*sp Dm*(3.4+2M) | Cm = 0 | Tm = 2 |
奥冲0~3 | l | Dl = 2.1414*sp Dl*(7.6+3M) | Cl = 11.5*3% = 0.345 | Tl = 9 |
弹幕4 | b | Db = 1.365*sp Db*(3.4+2M) | Cb = 0.5% = 0.005 | Tb = 1.5 |
以上两个表格中需要解释的事项:
1. 蓝耗的单位1 是100%的未经精通加成的最大法力值。
2. (3.4+2M)是指四层奥冲的伤害加成系数: (1+4*(0.6+M/2)) = (3.4+2M)
3. 第三行“∑奥冲0~3”是指奥冲0到奥冲3四个连续释放的技能认为是一个。其蓝耗、伤害、耗时全都是加在一起的总和。
4. 以上数值是LEG7.1人类无装备只有神器的情况下测试得出,神器中奥冲飞弹特质3级,弹幕特质0级,奥术伤害提高等已被包含,飞弹伤害经三之准则折算。具体为0全能,8%面板暴击(自带5%特质3%)
二、输出环境的抽象和技能的解耦合变换
在分析奥法的技能循环时,我们发现以上四种输出占比能有约80%以上(不计饰品、附魔、药水等非技能伤害)。所以对这四个技能的研究是绝对有意义的。我们下面进入最最理想的纯木桩环境,探讨各种主副属性和手法之间的关系。
先说明纯木桩的情景假设:
单体目标、一个唤醒周期(且认为唤醒不受急速影响)、4层充能起手、没有橙装
只有这四个技能:飞弹和弹幕只有在四层时候才会打出,且飞弹没有溢出。奥强、法阵、印记、虚空风暴、魔爆术、新星、气定或充沛等统统没有。
在这种情况下我们可以把上述四个主要技能抽象成为两个技能:奥冲A和弹幕B。这样做的目的是将奥法的技能之间的耦合关系剔除变成简单技能的线性叠加,而结果证明我们做到了。具体构造方式如下:
1. 认为所有奥冲触发的飞弹4都可以按照触发几率被归入奥冲4。有如下表达式:
奥冲A = 奥冲4 + 2*Rm*飞弹4;
2. 之所以出现奥冲0~3,完全是因为打了弹幕4,所以将奥冲0~3的影响记入弹幕B,同时将弹幕触发的飞弹记入弹幕B,有如下表达式:
弹幕4 + 奥冲0~3 + Rm*飞弹 = 弹幕B + 4*奥冲4
弹幕B = 弹幕4 + 奥冲0~3 + Rm*飞弹 4*奥冲4;
照此我们得到了两个修正过的技能,参数如下:
技能名称 | 脚标 | 伤害 Damage | 蓝耗 Mana Cost | 耗时(秒) Time Cost |
奥冲A | A | DA=(Dh + 2RmDm)*(3.4 + 2M) =7.2808+20.1193*Rm+4.2828*M+11.8349*Rm*M | CA = Ch+2RmCm = 0.18 | TA = Th+2RmTm = 2.25+4Rm |
弹幕B | B | DB = (Db + RmDm)*(3.4 + 2M) - Dh*(6 + 5M)=-8.2074+10.0596*Rm-7.9770*M+5.9174*Rm*M | CB = Cb+Cl-4Ch = -0.37 | TB = Tb+Rm*Tm = 1.50+2Rm |
一个职业只有两个技能,连触发都没有,我们是不是很好就能确定最优输出手法了?
三、 可行条件和规划问题
现在我们只有两个技能:奥冲A和弹幕B,我们只需要加上一些限制条件就可以用线性规划的方法解出来最优手法和最大输出。并且在最优点上确定各个属性之间哪一项提升最大。下面我们一起来看看:
奥冲A弹幕B分别释放NA和NB次,NA和NB都大于等于0
首先,限制条件有如下:
1. 可用时间:一个唤醒周期内可用输出的时间有T = 90-6/(1+H)这么多。即时间条件:(经急速加成后)
NA*TA + NB*TB <= (90-6/(1+H))*(1+H)
NA*TA + NB*TB <= 90*(1+H)-6
如果认为唤醒不受急速影响(一种简化近似),则:
NA*TA + NB*TB <= 84*(1+H)
2. 蓝耗条件:一个周期内可以使用的蓝量有:
1+T*R = 1+(90-6/(1+H))*0.015 = 2.35-0.09/(1+H)
即蓝耗条件:
NA*CA + NB*CB <= (2.35-0.09/(1+H))*(1+M)
如果认为唤醒不受急速影响,则:
NA*CA + NB*CB <= 2.26*(1+M)
3. 充能条件:为了释放飞弹4和弹幕4,充能必须叠到4层。每放一个弹幕B,至少放四个奥冲A则:
-1*NA + 4*NB <= 0
4. 最大化伤害:可以计算出这些技能造成的总伤害D
D = DA*NA + DB*NB
重新整理一下这个问题,并准备求解。先计算唤醒不受急速加成的简化模型。
规划:NA和NB两个变量,Rm,H,M为参数。
可行条件:
使下值最大:
D=D_A*N_A+D_B*N_B,
D=(7.2808+20.1193*R_m+4.2828*M+11.8349*R_m M)*N_A+(-8.2074+10.0596*R_m-7.9770*M+5.9174*R_m M)*N_B
四、副属性和飞弹触发几率收益
上述规划问题,因为有几个参数的引入导致了解起来还是很繁琐的。在此我们讨论一些典型情形,给大家一些直观印象。
典型情况:最典型的情况,有一些精通、少量的急速和5级特质。取触发率Rm=20%,精通M=40%,急速H=10%
如图所示,xy轴分别代表NA和NB。可行域是阴影部分区域。绿线表示急速条件,蓝线表示蓝耗条件,黑线是充能条件,红线是等伤害线。所以可知伤害最大化的位置在阴影区域右侧的绿点上取得。
此时(NA,NB)=(27.34, 4.748),90秒内,奥冲释放27.34次,弹幕释放4.78次(以及若干次飞弹)。在这点可以解出NA,NB关于Rm、M和H的表达式,再继续套算出伤害量。
1. 副属性的收益
先探讨Rm确定在0.2时(5层次级专长)的时候,四个副属性M、H、C、V的关系。也就是讨论配装问题,精通、暴击、全能、急速哪个厉害。
我们把方程组中NA,NB消去,最优点的伤害D表达式写出来如下:
D = 237.279 + 175.226*H + 184.010*M + 51.263*M^2 + 70.695*H*M
算上暴击和全能D_all = D*(1+C)*(1+V).
D_all =(237.3+175.2*H+184.0*M+51.3*M^2+70.7*H*M)*(1+C)*(1+V)
带入绿字兑换等式:
C = Cs/34000+0.080; 人物自带5%暴击,神器3%暴击
V = Vs/40000;
M = Ms/29751+0.096; 人物自带9.6%精通,法师护甲加成在绿字中
H = Hs/32521;
可得总伤害关于所有副属性的函数:
D_all (C_s,V_s,H_s,M_s)=255.4368*1.08*(1+C_s/36720)*(1+V_s/40000)*(1+H_s/45646+M_s/39203+(M_s^2)/(4.4073*[10]^9 )+(H_s*M_s)/(3.4957*[10]^9 ))
近似为
D_all (C_s,V_s,H_s,M_s)=255.4368*1.08*(1+C_s/36720)*(1+V_s/40000)*(1+H_s/45646 )*(1+M_s/39203)
至此我们可以说,副属性的优先顺序是:暴击>精通>全能>急速。暴击最优、精通和全能收益相近、急速最差。
伸手党所需要的具体方案是:暴击领先精通2500,精通领先全能800,全能领先急速5600。并且当智力>36720时,智力收益小于暴击。
举几个例子:当暴击2500,精通500,其他副属性都是0时,提升暴击收益最高;当暴击3000,精通500,其他副属性都是0时,均等地提升暴击和精通,提升最大;当暴击3500,精通1000,其他副属性都是0时,提升全能收益最高。
这里是为什么看到上面公式可以推出来结论:[/read.php?tid=7788600]。
2.飞弹触发几率
接下来说说飞弹触发几率这个特质的收益。同样是把D展开,这次是带入H和M的值,保留Rm为变量,如下:
D(R_m)=707.41-497.0911/(1.6689*R_m+1)
只要D对Rm求导即可得出Rm的收益率。为了方便大家,直接把不同触发率下的提升收益率列在表格中。例如第一列表示触发率从15%提升到16%,dps约能提升1.68%。所以结论就是,飞弹触发率是一个非常有效的次级专长。(相比之下,1%暴击只能提升不到1%的输出。)
Rm | 15.5% | 16.5% | 17.5% | 18.5% | 19.5% | 20.5% |
D(Rm) | 312.48 | 317.65% | 322.68 | 327.59 | 332.37 | 337.03 |
(D(Rm)')/D(Rm) | 1.68% | 1.61% | 1.54% | 1.48% | 1.42% | 1.37% |
五、木桩和实际的关系 与 本文的意义
大家肯定会有很多疑问。为什么你要做这么无聊的简化的木桩研究呢?
因为如果一个法师不会打木桩,那么他肯定是不会打实战的。奥冲、飞弹和弹幕占了实战中80%以上的输出占比,在本文中系统地讲述了应该如何思考这个木桩问题,意义一定是有的。下面我继续回答有关手法的问题。
1.与SimC仿真的区别
先前已经说了,输出循环中只有奥冲、飞弹、弹幕和唤醒四个技能。就已经得到了伤害最大的结果。请注意,这个伤害最大化的结果是通过多个硬性条件的限制规划出来的,而不是先确定了手法仿真出来的。
我规划的方法是先确定了奥法的理论输出上限,再来思考怎样的手法可以达到这个上限。而SimC仿真的方法是人为构造一个手法并计算伤害再去穷举是否还有更高的手法,实际上是一个不断抬升下限的方法。
所以我们很直观的就会去质疑:难道我不用你Simc的方法就不能打的更高吗?
SimC不能回答你这个问题。而数学可以!
我可以明确地告诉你,如果你只用这几个技能输出,你无论用什么方法都打不出比我理论上限更高的伤害。(发呆不打弹幕或者较真只打4+1,肯定打得不如规划结果高)
2.手法?你的手法是什么?无招胜有招
事实上算了这么久,我都没有给出手法,我只是在关注两个值。即90秒的循环内,总共打了多少个奥冲A、多少个弹幕4。
因为无论这个奥冲和弹幕是以何种的顺序打出去,只要数目一致,总伤害就一样。你是先泄蓝再打4+1还是先4+1再把额外的奥冲打出去,都无关紧要。
因为知道这个大结论我们就知道如何运用我们的天赋和技能了。比如说奥强是增伤减蓝耗,那么肯定要塞下尽量多的奥冲。法阵是增伤的,奥冲飞弹都可以塞进去。加速是用来帮忙把奥冲和飞弹塞进去的。
对没错,本文教给各位法师一个思维的方法,也就是本次奥数班开班的意义。具体的结论呢,也不要迷信,要根据自身情况和理论环境的区别做修正。
如果动不动就是“木桩不会实战,理论研究没有意义”,那么和“炎爆术砍了6%,而我感觉总体dps至少降低了15%”又有什么区别呢?