优化一下原始数据的采集方式,始整个过程更直观.
不可变数据为不会因为装备改变而改变的部分,比如不可变命中率对于3点元素精准的FS面对人物等级+3的目标时来说,w1=0.83+0.03,假如能有德国FS在同组,那么w1=0.87.
可变数据就是我们关心的装备部分,或者更准确的说是我们犹豫不决怎么穿的几件装备,比如深渊之心和黑书的选择,而不是万年不动的古头.
当然,只要总数据也就是不可变部分+可变部分的和是准确的,那么计算结果也就是准确的,而和数据2部分的比例无关.比如x可变,那么3+x也是可变,就是这个意思.
命中率W=不可变命中率w1+可变命中等级w/1260=w1+w/1260
致命率Y=不可变致命率y1+可变致命等级y/2210=y1+y/2210
加速率Z=不可变加速率z1+可变加速等级z/1570=z1+z/1570
火球平射伤害Pp=(基础伤害P0+法术伤害x*法术伤害加成a)*技能伤害加成b=(p0+x*a)*b
a=3.5秒规则系数*火球增效*等等其他我现在没有想到的总之只影响装备法术伤害的
b=火焰强化*元素诅咒*4T6*火焰易伤等等这些.其实b这样的全局系数是多少对于我们装备搭配没有影响,它影响的是当w,x,y确定时,dPs(w,x,y,z)/dw的绝对数值,说白了,就是这个时候,w的提升率是多少.只是绝对值,这个4个方向提升率之间的相对比例不变.
火球致命伤害Pc=Pp*技能致命倍数c=Pp*c=(p0+x*a)*b*c
火球平均伤害Pa=W*(Y*Pc+(1-Y)*Pp) =(w1+w/1260)*((y1+y/2210)*((p0+x*a)*b*c)+(1-(y1+y/2210))*((p0+x*a)*b ))
火球每秒伤害Ps=Pa/(基础吟唱时间T/(1+Z)) =Pa*(1+Z)/T=Pa*(1+(z1+z/1570))/T=(w1+w/1260)*((y1+y/2210)*((p0+x*a)*b*c)+(1-(y1+y/2210))*((p0+x*a)*b ))*(1+(z1+z/1570))/T
Ps=
(w1+w/1260)*
((y1+y/2210)*((p0+x*a)*b*c)+(1-(y1+y/2210))*((p0+x*a)*b ))1
*(1+(z1+z/1570))/T
对1提取公因式(p0+ax),得到b(p0+ax)*[(cy1+1-y1)+(c-1)/2210*y]
也就是Ps=
(w1+1/1260*w)2*
(p0+a*x)3*
((c*y1+1-y1)+(c-1)/2210*y)4*
((1+z1)+1/1570*z)5*
b/T
我们都知道内接球立方体体积最大的时候是各边长相等的时候,边长是什么,边长就是上面的23454项,他们就是边长(在某坐标系下,坐标系不唯一)
这个就是
P(w,x,y,z)=(a*w+b)(c*x+d)(e*y+f)(g*z+h)形式了.
这个函数P什么时候取最大值呢?我们先设w+x+y+z=R为定值,也就是,物品等级一定.
然后,令P=M(w+a1)(x+b1)(y+c1)(z+d1)
其中a1=b/a b1=d/c c1=f/e d1=h/g M=aceg
利用4ab<=(a+b)^2
得到P<=M/16*[(w+a1+x+b1)*(y+c1+z+d1)]^2
再用一次得到P<=M/256*[w+a1+x+b1+y+c1+z+d1]^4
右边即为最大值.
取最大值条件是:边长相等.
边长是什么?边长就是(w+a1)=(x+b1)=(y+c1)=(z+d1)=(R+a1+b1+c1+d1)/4,4维的,数学多美妙.
假如装备改变导致的R,也就是狭义上和输出有关的输出等级,命中\法伤\加速\致命,发生了改变,那么就需要重新计算了,这就是无耐装备就是"宝"的原因,物品等级不高,但是输出等级高.
代入所有的wzxy之外的固定数据进入Ps得到Ps1,然后把不同的(w,x,y,z)方案代入Ps1,就是你在Ps1状态下不同装备的结果.
我在excel里面写了个自定义公式,其实只是个很简单的自己动手丰衣足食的事情,没有高深理论,四则运算而已.
填写进数据可以得到一个理论的数值.
本来还可以加进去在某点求偏导的计算,也就是当各项变量确定在某点的时候,各方向上的斜率分别是多少,想想一下子用不着,广大结论党员能够知道比较最后数字的大小就行了.
我不保证公式引用是否正确.
来源:NGA 作者: zhiming331