XX职业要怎么堆属性 数学帝分析绿字收益
嫌弃数学论证过程的同学请直接转下方结论处!
前言
实际上,现在NGA已经有很多副属性讨论贴。有的是直接从simc模拟出发,有的会基于一定的推导。
从simc模拟出发的讨论实际上与角色自身的状态关系极大,而基于理论的推导要么不容易让人信服,要么结论不够直接,甚至有的是错误的结论。
这篇帖子可以说是所有基于理论推导的帖子的一个集合与总结,并有在理论性上有一定的提升,试图用严格的数学推导来讨论副属性收益。当然,为了提高理论模型应用于实际的精确性,还需要结合simc模拟或者木桩实战的结果。
首先,我会就一个理想化的施法模型,来推导副属性的收益,并给出如何堆副属性的方法。然后,我再讨论如何将实际游戏内复杂的机制套用在这些结论上。这实际上是见仁见智的部分,我会给出一些思路,并引用一些已有的帖子。
如果需要引用这篇帖子的话,也请注明出处。一起参与编辑的除了我 [@Rubbish_Oh] 还有好基友 [@aeonaxx7]
1. 理想施法模型下的技能伤害
我们首先考虑一个简单的技能,比如术士的烧尽:施法时间2s,造成2.331倍法术强度的火焰伤害。
因为1点法术强度等于1点智力,那么字面造成的伤害就是2.331智力。
现在考虑各个副属性对这个技能带来的增益。
全能:400点全能增加1%的伤害,那么1点全能提高1/40000的伤害。
急速:325点急速提高1%施法速度,那么1点急速期望提高1/32500的伤害。
暴击:350点暴击提高1%的暴击率,那么1点暴击期望提高1/35000的伤害。
精通:精通的收益对于各个职业各个专精都不同,我们这里先假设350点精通期望提高1%的伤害,也就是1点精通提供1/35000的伤害。这个数值本身十分并不影响之后的推导。
于是,这个技能的伤害就变成了2.331智力×(1+全能/40000)×(1+急速/32500)×(1+暴击/35000)×(1+精通/35000)。
我们把这里的40000,32500,35000和35000分别称作全能、急速、暴击和精通的伤害系数。这是个整篇推导的核心概念。
为了便于数学推导,我们用i表示智力,v,h,c和m分别表示全能,急速,暴击和精通,用大写的V,H,C和M分别表示各副属性的伤害系数,也就是40000,32500,35000和35000,用A表示智力的伤害系数,也就是2.331。
于是上面的伤害计算公式就变成了A*i*(1+v/V)*(1+h/H)*(1+c/C)*(1+m/M),可以用f(i, v, h, c, m)表示。
(注:有的帖子从这里开始就直接用算术平均几何平均之类的方法去求最大值,然后得到4个副属性要按比例堆的结论。这是错误的!因为根本不满足使用这类方法的条件。并且实际上,拿数字计算也可以知道按比例堆得到的不是最大值,帖子最后有一个例子。)
2. 理想施法模型下的技能收益
现在我们考虑每增加1点副属性带来的收益。
我们都知道副属性的收益是跟当前角色状态,也就是所有的主副属性相关的,因此我们假设当前人物有i_0点智力,副属性分别是v_0, h_0, c_0, m_0。
于是当前人物状态下,这个技能的伤害是f(i_0, v_0, h_0, c_0, m_0),我们直接用f_0来表示。
于是,1点全能相对于当前人物状态所增加的伤害比例为:f(i_0, v_0 + 1, c_0, m_0) / f_0 - 1。化简的过程,其实并不难:因为其他属性带来的伤害增加都没变,是常数,所以可以直接约掉。于是就变成了(1 + (v_0 + 1) / V) / (1 + v_0 / V) - 1。再化简一下,就是1 / (V + v_0)。
这个东西的意义用文字说就是:假设我当前有1000点全能,那么再增加1点全能,能让我的伤害相比于当前增加1/(40000 + 1000);如果我有2000点全能,那么伤害能增加1/(40000+2000)。
这里的伤害增加与全能本身的伤害增加的含义并不同。400全能带来1%的伤害增加是相对于技能的字面伤害说的,而这里的1点全能带来的伤害增加是相对于此技能在角色当前状态说的。
类似地,其他副属性的收益也能求出来,甚至包括主属性。
全能:1/(40000+v_0)
急速:1/(32500+h_0)
暴击:1/(35000+c_0)
精通:1/(35000+m_0)
智力:1/i_0
从这里也能直接得到一些简单的结论:
1点副属性的收益为1除以该副属性的伤害系数和当前数值之和。
1点任何属性带来的收益都只与它的当前数值和伤害系数有关,与其它属性无关。
智力不过是伤害系数为0的一种特殊副属性。
比较全能和急速的话,如果全能为0,那么急速在7500点之前,1点急速的收益要大于1点全能;之后,只要急速比全能多的量不超过7500,那么1点急速的收益都要大于1点全能。
任意两属性都能得到类似c里面的结论。
3. 堆副属性的策略
我们现在来看如何堆副属性。
我们模拟这么一个过程:初始时,我的所有副属性都为0;每次我得到1点副属性,然后我将它赋予我收益最大的副属性;然后再得到1点副属性,以此类推。
如果现在只考虑全能和急速两种副属性,那么根据之前的结论“只要急速比全能多的量不超过7500,那么1点急速的收益都要大于1点全能”。
我们的策略是:
a. 对于前7500点副属性,我们将它们全部赋予急速。
b. 对于第7501点副属性,急速的收益是1/(32500+7500),全能是1/40000,两者相等,给任一一个都可以。
c. 对于第7502点副属性,如果b中赋予了急速,那么急速的收益是1/(32500+7501),全能的收益是1/40000,那么这点属性应该赋予全能;反之,则赋予急速。
d. 对于之后的每2点副属性,急速和全能各1点即可。
现在,我们把所考虑的副属性扩展到4个:
a. 初始时,所有副属性都是0,这个时候我有了1点副属性,那么它是什么副属性的时候收益最大呢?通过把v_0,h_0,c_0,和m_0都设为0,可以很容易的得到,急速收益最大,那么我们把这1点副属性给了急速。
b. 然后我又有了1点副属性。通过把v_0,c_0,和m_0都设为0,而h_0设为1,仍然可以得到急速收益最大。
c. 这样的过程一直持续,直到我有2500点急速。此时,急速的收益是1/(32500+2500),而暴击精通的收益都是1/35000,三者相等。
d. 对于之后的每3点副属性,急速、暴击和精通各1点即可。你会发现,我们现在处于三者收益齐头并“退”的情形。副属性的收益递减导致我们需要三种属性同时堆。
e.这样的过程一直持续,直到我们有7500急速,5000点暴击,5000点精通,此时三种属性的收益都是1/40000,而全能的收益也是40000。
f. 对于之后的每4点副属性,各个属性各1点即可。
于是,在我们这种理想模型下,堆副属性的策略与副属性的伤害系数密切相关。
对于每次新产生的1点副属性,优先伤害系数与当前数值之和最低的副属性即可。
4. 如何考虑游戏中的机制
现在我们要把这个理想模型推广到实际游戏中去了。
但是,需要解决几个问题:
1. 精通的伤害系数怎么计算?也就是多少点精通期望提供1%的伤害?
2. 暴击的额外收益如何计算?比如毁灭术的回片,脑残箭必爆,等等。
3. 急速的额外收益如何计算?比如急速 对于dot技能实际上是双倍收益,当然还有阈值问题 有一定的额外收益,比如恶魔术招的小鬼越多神器技能打得越高之类,dot跳得越快而回片快,等等。
这些问题本质上其实就是如何对伤害系数进行修正的问题。对伤害系数进行修正之后,堆副属性的策略依旧不变。
因为这本身就是个见仁见智的问题,我这里没打算给出个完全的解决方案,只给出一些思路。
例如,对于急速的额外收益问题, 如果不考虑阈值的话,每一点急速带来的收益是1/(V/2+v_0),也就是相当于急速的伤害系数减半 肯定会导致伤害系数减小,减小的量需要考虑额外收益的程度来计算。当然,还需要与其他技能的伤害系数再加权平均。
对于暴击的回片收益,也可以根据回片的概率来计算,将回片换算成伤害,然后等价到伤害系数里去。
精通带来的期望伤害,则可以通过simc模拟中的平均值与字面伤害进行比较得到。
总之,都是根据机制来修正伤害系数,然后前面所述的堆属性方法仍然适用。
有好几篇帖子里都有考虑这个修正伤害系数的问题:
上面的属性收益计算方法其实还可以引申到主属性上。如果某职业dot特别多,能把急速的伤害系数拉低到原来的一半17250(当然实际达不到)。而同时现在角色有的智力(我自己870术士)大概在3w3左右。这意味着,在急速16000以前,急速的收益都会比智力要高!这也能在理论层面,一定程度上解释为什么现在恶魔术的急速收益会超过智力。
结论
总之,这篇帖子从数学上给出了理想施法模型下的副属性收益和堆副属性的策略:即优先伤害系数与当前数值之和最低的副属性即可。
当然,对于如何将结果应用到实际游戏中,还需要和simc模拟或者木桩等等结合起来,才能得到更接近于实战的结果。
附:为什么按比例堆副属性是错误的
只考虑两个属性:全能和暴击。初始时两者都为0,假设现在有750点副属性待分配。
如果全部给暴击,那么伤害提高750/350=2.14%
如果按比例分配,全能400,暴击350,那么伤害提高1.01*1.01-1=2.01%
如果有其他按比例分配的方法,反正也类似。全部给暴击才是最大值。