[少女前線] 平均命中和平均閃避怎么算
寫此文的初衷是要回答兩個問題:
1. 很多人覺得A545弱因為她的命中會衰減.?為了討論這個問題, 最好是希望即使A545命中可變,也有辦法用一個數(shù)值來表示她的命中. 另外血包技能期和回音也會改變?nèi)诵蔚拿? 那么能不能估計出前20s/30s的平均命中?
2. 很多人覺得AK15在夜戰(zhàn)隊帶光瞄命中會成問題.?為了討論這個問題, 最好是希望即使敵人有多個而且閃避不同時, 也有辦法用一個數(shù)值表示它們的閃避.?或者說, 能不能估計出一個怪組的平均閃避?
因為這兩個問題具有普適性, 所以專門發(fā)一貼討論.?

平均值, 并不是顯而易見的
兩個數(shù)a,b的算術(shù)平均值是(a+b)/2, 這個誰都懂. 但是這個計算不見得有意義. 舉個例子, 小明從A地去走路B地, 前半程速度為v1, 后半程速度為v2. 求平均速度. 那么就要問"平均速度"的意義是什么? 在這個問題里, 平均速度的意義是用一個均勻速度走路而不改變從A到B的總時間.?
推導(dǎo)出的速度的平均值其實是調(diào)和平均值, 而不是算術(shù)平均值.
同樣的, 在計算平均命中和平均回避時, 也要先問它的意義. 也不見得是簡單的算術(shù)平均. 具體是什么, 需要推導(dǎo). 那就開始吧.

名字和記號

命中率的計算公式
這涉及到兩個變量, 攻擊方命中和目標(biāo)閃避. 為了簡化, 定義閃命比k
則命中率公式可以簡化為閃命比的一元函數(shù):
DPS(damage per second)可以定義為和命中無關(guān)部分的輸出功率c乘以命中率:

計算怪組的平均閃避
假設(shè)我方的命中固定, 與命中無關(guān)的傷害功率為c. 假設(shè)一個怪組有N個敵人,?血量分別是H_i. 閃避為evasion_i, 閃命比分別是k_i, 那么我們可以得到消滅所有敵人的時間:
平均閃命比的意義是, ?當(dāng)每個敵人的閃命比都是
時, 消滅所有敵人的總時間和前面一致. 則有:
當(dāng)我方命中固定, 敵人閃避和閃命比成正比, 從而
也就是說, 敵人閃避的平均值就是敵人血量加權(quán)的算術(shù)平均值. 這個結(jié)論非常簡單漂亮.
因為大部分高血量敵人比如漢尼拔, 白憨憨等都是低閃避的, 所以他們大大的拉低了敵人的平均閃避, 所以AK15在高命中夜戰(zhàn)隊帶光瞄完全可行.?
注: 以上計算沒有考慮能鎖血的特殊敵人, 如軍方狗和黑沖.

計算人形的平均命中
考慮這樣一個模型, 人形每一幀的命中是ac_i, 于命中無關(guān)的傷害功率是c_i, 敵人閃避固定為ev. 閃命比k_i = ev/ac_i, 給定總時間T, 那么可以計算出總傷害:
平均閃命比的意義是, 當(dāng)我方人形每幀的命中都固定從而閃命比固定為
時, 在時間T內(nèi)總輸出和上面計算的輸出一致. 則有:
有了平均閃命比, 就可以再求出人形的平均命中:
這個公式有那么一點復(fù)雜, 而且和敵人閃避相關(guān). 那么能不能得到一個近似的簡單的和敵人閃避無關(guān)的平均命中??
還是從命中率公式出發(fā),?
因為敵人閃避一般都遠(yuǎn)遠(yuǎn)低于我方命中. 即k<<1, 上面表達(dá)式可以近似為(泰勒展開)
其中o(k)表示k的高階小量. 從而我們可以改寫總傷害公式:?
應(yīng)用到平均命中公式有:
為了估算, 略去等式兩邊的高階小量, 簡化為
消去常數(shù)項, 提取公因式, 簡化為
把帶入并消去ev, 得到
從而
所以, 近似的平均命中等于輸出功率加權(quán)的命中的調(diào)和平均值.

應(yīng)用: A545的平均命中


有了理論公式, 就可以來計算A545的平均命中.?為了簡化, 我的時間窗口的最小單位是1秒, 而不是一幀. 考慮了A545, 血包和p22的技能加成. A545技能期的滿暴擊帶來的提升算在了傷害buff里. 上圖是A545的前30秒的每一秒的數(shù)據(jù), 包括輸出功率和命中. 然后就可以用前面推導(dǎo)的公式計算平均命中率了.?

用近似公式可以算出前20秒A545的近似平均命中 = 324, 前30秒近似平均命中288.?
用精確公式算出的命中如上圖, 分布在324到327. 可見近似公式的結(jié)論還是相當(dāng)準(zhǔn)確的.?