矩阵
因为不知道什么是矩阵的小伙伴不可能看得懂后面了,所以就省了。
加权矩阵
这是自定义的一个概念,据说和量子力学有一点异曲同工之妙。下次可以告诉别人你玩的游戏需要会量子力学(bushi)。
意思就是说一个数值不确定的矩阵,有0.3的概率是某个数值确定的矩阵A,有0.7的概率是某个数值确定的矩阵B,那么就用:
{ (0.3, A), (0.7, B) }
来记录这个矩阵。这种矩阵的特点是:由若干个尺寸一样的普通矩阵构成,每个普通矩阵都有一个概率值表示它出现的概率,所有的概率的和为1。
加权矩阵的运算
加权矩阵也有运算规则,我们只需要定义乘法规则就够地堡用的了。冗长的术语不多说了,看例子:
{ (0.3, A), (0.7, B) }
× { (0.4, C), (0.6, D) }
= { (0.12, AC), (0.18, AD), (0.28, BC), (0.42, BD) }
乘完了之后的结果还是一个加权矩阵,因为还是所有的概率和为1,所有的矩阵形状相同。
好了
你被强化了,快去看原理解析。
一刀的期望
\( E_x = \sum p_i x_i \)
一刀的方差
\( S^2_x = \sum p_i (x_i - E_x) \)
出手次数
\( n = \lfloor \frac{战斗时长-首次出手-0.1}{技能冷却} \rfloor + 1 \)
战斗全程的期望
\( E = n E_x \)
战斗全程的方差
\( S^2 = n S^2_x \)
伤害超过H的概率
\( P(X > H) = 1 - \Phi\left(\frac{H - E}{S}\right) \)
用加权矩阵计算伤害
夜魇:



就以他为例子好了。后面矩阵第一行/第一列对应力,第二行/第二列对应速,第一行的第二列代表力转速。真实情况需要李默技速体5*5矩阵,这里省了。
计算系数矩阵
夜魇的技能,力0.95速0.05,写成:
\( 技能矩阵 = \{ ( 1, \begin{bmatrix} 0.95 \\ 0.05 \\ \end{bmatrix} ) \} \)
状态矩阵。状态只有一个15速爆,也就是15%的速转速,写成:
\( 状态矩阵 = \{ ( 1, \begin{bmatrix} 1 & 0 \\ 0 & 1.15 \\ \end{bmatrix} ) \} \)
增幅矩阵。0.35概率300%的速转力,0.2275概率100%速转力,0.4225概率啥都没。写成:
\( 增幅矩阵 = \{ \)
\( ( 0.4225, \begin{bmatrix} 1 & 0 \\ 0 & 1 \\ \end{bmatrix} ), \)
\( ( 0.2275, \begin{bmatrix} 1 & 0 \\ 1 & 1 \\ \end{bmatrix} ), \)
\( ( 0.3500, \begin{bmatrix} 1 & 0 \\ 3 & 1 \\ \end{bmatrix} ) \)
\( \} \)
有公式:
\( 系数矩阵 = 状态矩阵 \times 增幅矩阵 \times 技能矩阵 \)
矩阵乘法的结合律,这里一般先算后两个的乘积再和第一个乘比较简单一点。
\( 增幅矩阵 \times 技能矩阵 \)
\( = \{ \)
\( ( 0.4225*1, \begin{bmatrix} 1 & 0 \\ 0 & 1 \\ \end{bmatrix} \times \begin{bmatrix} 0.95 \\ 0.05 \\ \end{bmatrix} ), \)
\( ( 0.2275*1, \begin{bmatrix} 1 & 0 \\ 1 & 1 \\ \end{bmatrix} \times \begin{bmatrix} 0.95 \\ 0.05 \\ \end{bmatrix} ), \)
\( ( 0.3500*1, \begin{bmatrix} 1 & 0 \\ 3 & 1 \\ \end{bmatrix} \times \begin{bmatrix} 0.95 \\ 0.05 \\ \end{bmatrix} ) \)
\( \} \)
\( = \{ \)
\( ( 0.4225, \begin{bmatrix} 0.95 \\ 0.05 \\ \end{bmatrix} ), \)
\( ( 0.2275, \begin{bmatrix} 0.95 \\ 1 \\ \end{bmatrix} ), \)
\( ( 0.3500, \begin{bmatrix} 0.95 \\ 2.9 \\ \end{bmatrix} ) \)
\( \} \)
再和增幅矩阵乘(注意乘法先后可以换,矩阵顺序不能换):
\( 系数矩阵 \)
\( = 状态矩阵 \times (增幅矩阵 \times 技能矩阵) \)
\( = \{ \)
\( ( 1*0.4225, \begin{bmatrix} 1 & 0 \\ 0 & 1.15 \\ \end{bmatrix} \times \begin{bmatrix} 0.95 \\ 0.05 \\ \end{bmatrix} ), \)
\( ( 1*0.2275, \begin{bmatrix} 1 & 0 \\ 0 & 1.15 \\ \end{bmatrix} \times \begin{bmatrix} 0.95 \\ 1 \\ \end{bmatrix} ), \)
\( ( 1*0.3500, \begin{bmatrix} 1 & 0 \\ 0 & 1.15 \\ \end{bmatrix} \times \begin{bmatrix} 0.95 \\ 2.9 \\ \end{bmatrix} ) \)
\( \} \)
\( = \{ \)
\( ( 0.4225, \begin{bmatrix} 0.95 \\ 0.0575 \\ \end{bmatrix} ), \)
\( ( 0.2275, \begin{bmatrix} 0.95 \\ 1.15 \\ \end{bmatrix} ), \)
\( ( 0.3500, \begin{bmatrix} 0.95 \\ 3.335 \\ \end{bmatrix} ) \)
\( \} \)
计算伤害
系数矩阵是列矩阵,伤害矩阵是行矩阵。
夜魇的属性,力1779速6238,写成:
\( 属性矩阵 = \{ ( 1, \begin{bmatrix} 1779 & 6238 \\ \end{bmatrix} ) \} \)
有公式:
\( 伤害 = 属性矩阵 \times 系数矩阵 \)
代入公式:
\( 伤害 \)
\( = 属性矩阵 \times 系数矩阵 \)
\( = \{ \)
\( ( 1*0.4225, \begin{bmatrix} 1779 & 6238 \\ \end{bmatrix} \times \begin{bmatrix} 0.95 \\ 0.0575 \\ \end{bmatrix} ), \)
\( ( 1*0.2275, \begin{bmatrix} 1779 & 6238 \\ \end{bmatrix} \times \begin{bmatrix} 0.95 \\ 1.15 \\ \end{bmatrix} ), \)
\( ( 1*0.3500, \begin{bmatrix} 1779 & 6238 \\ \end{bmatrix} \times \begin{bmatrix} 0.95 \\ 3.335 \\ \end{bmatrix} ) \)
\( \} \)
\( = \{ \)
\( ( 0.4225, \begin{bmatrix} 2049 \\ \end{bmatrix} ), \)
\( ( 0.2275, \begin{bmatrix} 8864 \\ \end{bmatrix} ), \)
\( ( 0.3500, \begin{bmatrix} 22486 \\ \end{bmatrix} ) \)
\( \} \)
最后加武威,再乘上物伤暴击:
\( 伤害 \)
\( = \{ \)
\( ( 0.4225, \begin{bmatrix} (2049+260)*1.5 \\ \end{bmatrix} ), \)
\( ( 0.2275, \begin{bmatrix} (8864+260)*1.5 \\ \end{bmatrix} ), \)
\( ( 0.3500, \begin{bmatrix} (22486+260)*1.5 \\ \end{bmatrix} ) \)
\( \} \)
\( = \{ \)
\( ( 0.4225, 3064 ), \)
\( ( 0.2275, 13686 ), \)
\( ( 0.3500, 34119 ) \)
\( \} \)
见证奇迹的时刻
期望?
太简单了,伤害里面乘起来相加就是一刀的期望,乘出手次数就结束。
总结
\( 系数矩阵 = 状态矩阵 \times (增幅矩阵 \times 技能矩阵) \)
\( 伤害 = 属性矩阵 \times 系数矩阵 \)
两个一点点短的乘法公式,没啦!
旧版带过程
原来的带过程的链接在这里,因为新版新增了对夜莺等等机制的支持,完全展示Latex公式过于麻烦,就不弄了。不过无论什么英雄什么武器,都是转化成这一套加权矩阵进行计算分析的。
旧版矩阵计算器(含计算过程)