「少女火線」格裡芬核心科技:定制標靶&數據分析

文丨SamAtlas@bigfun社區


前言

精心打磨的理論模型,常常能夠很好的描繪現實。但理論和實際,畢竟還有差距。

一方面來說,打磨模型自身就要必然時間。在新槍已出,而平臺未有更新的狀況下,響應攻略作者很有可能達不到最高測試效率。

而在另外一方面,是人,那總有是會有失誤的。遊戲自身都經常須要調整,讓實際體現與技藝描繪相符,何況是模仿器呢?

民間給出的打靶模仿就很好得解決瞭這個痛點問題,固然缺失瞭拉曲線的功能,但照舊十分好用,攻略創作進程很是順手。

但是,還是有個納悶始終困擾著我。

極高,到底有多高,是幾層樓那麼高?

考慮到好友們可能對進程並不在乎,下面直接給出論斷。

當前測試來說,揣測最高強度下靶機

較低閃避值 為 14

中閃避值 為 37

較高閃避值 為 83

極高閃避值 為 206

因為測試樣本依然缺乏,可能會有個位數偏差,但影響不會很大

假如想要上課的話,那就請往下面翻吧

-理論對象-

與其納悶,不如著手做點測試。此次,我們先解決閃避這個問題。

閃避怎樣計算

查閱相關資料,能夠很輕易的找到命中率與命中,閃避之間存在的關系

對款式做變形,便可得到

這就能把測量閃避值,化歸到怎樣測量命中率這個問題上瞭

命中率怎樣獲取

在正常遊戲形式下,要得悉命中率,應當是依據總射彈量與總命中數,獲取命中事件發生的頻次。當反復實驗的次數逐步增大時,頻次也就出現出穩固性,逐步穩固於某個常數,即幾率。也就是說,為瞭更便利得計算出命中率,我們應當盡量得提升射彈量,拉長測試的時間。

問題在於,誰來數這些鬼數字?

定制標靶

計算命中數

假如能保證每一發槍彈對靶機造成的損傷值不變,那應用結算頁面的全體損傷功能便可逆向推測出命中數。而當閃避歸零時,命中數也就等同於射彈量。

在低命中狀況下,MG3作為意願者加入瞭測試。高命中形式則選擇瞭97式女士。註①

為瞭保證損傷值恒定,一個很有操作性的辦法是,卸除穿甲彈,調整護甲損傷關系至完全拋光,並堅持必爆。對機槍來說,配件應當選擇2把暴擊手槍,突擊步槍則僅須要一把。妖精則必需為必殺2稟賦。

能夠看到每一發槍彈的損傷都穩固在3

調整護甲至極高,配裝光瞄與暴擊人形,就可以保證每一發槍彈命中後造成損傷均為3。最後將總損傷量除以3,這樣便得到命中數瞭。

配置約束辦法

但是,命中的隨機特征,會致使測量值不時出現巨大但厭煩的轉變,障礙我們從頻次快速到達幾率。除瞭茫然增大測試基數,還有什麼方法能夠討巧呢?

相信區間 註②

命中與否是種很典型的0-1分步問題,那我們即可以很便利得應用響應學問來解決問題。

設整體X(記得改波浪號)B(1,p),其中p未知,X1,X2,…,Xn是來自於這個整體的一個樣本,當樣本容量較大時,由中心極限制理得悉

類似聽從N(0,1)分步

因而則有

考慮到

等價於

則應用韋達定理,則能夠便利得解出

其中

由此可得到,p的一個類似的相信度為1-α的相信區間為(p1,p2)

多次測試中,假定得到瞭3個相信區間,(a1,a2),(b1,b2),(c1,c2)

那即可以將范圍縮小到(max(a1,b1,c1),min(a2,b2,c2),有效應用偏向大的測試素材縮小范圍。

應用數個范圍廣泛的區間,能夠將結果限定在很小的范圍內註③

款式示例

0buff加成下,造成損傷5496

50buff加成下,造成損傷6387

90buff加成下,造成損傷6981

下限為13.3222

平均值為14.0227

上限為14.6386

0buff加成下,造成4071損傷

直接計算得到閃避值為84.5549

95%相信區間為(79.0359,90.4746)

實戰測試

-較低閃避測試-

能夠看到,較低閃避的可能選項為13或許14,考慮區間位置我傾向於14

-中閃避測試-

可能的選擇是36與37,猜想更瀕臨37

-較高閃避測試-

因為MG3攜帶專屬後命中過低,測試偏差會偏大,因而後續選擇97式作為測試工具

Buff加成為90%的數據偏向相當大,有效將上屆限定在瞭83。因為別的2組與83也十分瀕臨,猜想較高閃避數值為83.

-極高閃避測試-

因為此時閃避真實過高,界線辨別已經瀕臨生效,隻能依據頻次值猜想閃避為206,或者有偏差,但數據來看不會過分偏移

-總結-

當前測試來說,揣測最高強度下靶機

較低閃避值 為 14

中閃避值 為 37

較高閃避值 為 83

極高閃避值 為 206

因為測試樣本依然缺乏,可能會有個位數偏差,但影響不會很大

(應當真的有人看到最後瞭吧)

註①:測試中MG3的射彈量為3200發,97式的射彈量為3370發,未給予97射速buff以控制射彈量到基本同等

註②

給定一個區間,使我們可以以必然的牢靠度相信區間內包括我們想要的參數。這裡的牢靠度因此幾率來器量的,被稱為相信度,習慣上將其記作 1 – α,此處α為一個很小的正數。而這個區間就是相信區間。

適用來說,取相信度為0.95是很有性價比的,此時取u=1.96

註③

響應matlab代碼完成,出於能跑就行的觀念能跑就行

function d = dodge(varargin)

%輸入2參數 buff數值 造成損傷

%當前為97狀態,要用mg3請把下面變量改一下

narginchk(2,3);

nmg3 = 16 40 5;

n97 = 10110 / 3;

pmg3 = 19;

p97 = 57;

if nargin == 2

buff = varargin1;

damage = varargin2;

num = sum(damage) / 3;

n = n97 size(damage,2);

n = num / n;

d = (1 – n) (p97 (100 + buff) / 100 ) / n;

else

precision = varargin1;

buff = varargin2;

damage = varargin3;

num = sum(damage) / 3;

n = n97 size(damage,2);

n = num / n;

d = (1 – n) (precision (100 + buff) / 100 ) / n;

end

function d = dodge95(buff,damage)

%輸出 相信區間下限, 直接帶入計算的結果 ,相信區間上限

n = 16 40 5 size(damage,2);

x = sum(damage) / 3 / n;

u90 = 1.64;

u95 = 1.96;

u99 = 2.58;

u = u95;

a = n + u^2;

b = – (2 n x + u^2);

c = n x ^2;

%計算95%相信度區間下可能的命中率

p1 = (- b + sqrt(b^2 – 4 a c)) / (2 a);

p2 = (- b – sqrt(b^2 – 4 a c)) / (2 a);

%帶入公式計算閃避

d(1) = dodge(buff,p1 n 3);

d(2) = dodge(buff,damage);

d(3) = dodge(buff,p2 n 3);

end

function d = getdodge(buff0,damage0,buff1,damage1,buff2,damage2)

%應用三組數據縮小范圍

d1 = dodge95(buff0,damage0);

d2 = dodge95(buff1,damage1);

d3 = dodge95(buff2,damage2);

mi = max(d1(1),d2(1),d3(1));

m = mean(d1(2),d2(2),d3(2));

ma = min(d1(3),d2(3),d3(3));

d = mi,m,ma;

end

发表评论