為了玩游戲開始了計(jì)算1-三國志戰(zhàn)略版中的技能
最近玩的一款游戲,三國志戰(zhàn)略版中存在這樣一些技能,想要對比一下他們的傷害收益。
技能1:
每回合有x的幾率發(fā)動(dòng),準(zhǔn)備1回合,造成n點(diǎn)傷害。(實(shí)際游戲中的技能更加復(fù)雜,此處簡化)
技能2:
每回合有x的幾率發(fā)動(dòng),造成n點(diǎn)傷害。

關(guān)于技能2,很容易計(jì)算出每回合技能的傷害期望p=xn。
但是技能1,因?yàn)榇嬖诎l(fā)動(dòng)后準(zhǔn)備1回合的設(shè)定,每回合傷害的期望就不是這么計(jì)算了。

我們先給技能1補(bǔ)全邏輯,主要是對于準(zhǔn)備1回合的邏輯補(bǔ)充。
當(dāng)前回合技能如果發(fā)動(dòng)成功,那么技能進(jìn)入準(zhǔn)備狀態(tài),下一回合發(fā)動(dòng)技能,且該回合不進(jìn)行技能是否發(fā)動(dòng)的判斷。發(fā)動(dòng)技能后進(jìn)入到下一回合。
當(dāng)前回合技能如果發(fā)動(dòng)失敗,那么無事發(fā)生,進(jìn)入到下一回合。

所以技能1中,當(dāng)前回合的狀態(tài)有以下幾種。
第一種:發(fā)動(dòng)成功,進(jìn)入到準(zhǔn)備狀態(tài)
第二種:發(fā)動(dòng)失敗
第三種:發(fā)動(dòng)技能狀態(tài)。
我們可以看到,下一個(gè)回合的情況是取決于上一回合的。此時(shí)想到了,這個(gè)問題是否可以使用馬爾可夫鏈解決。
根據(jù)上述情況,可以得到以下轉(zhuǎn)移矩陣。
假設(shè)技能的發(fā)動(dòng)概率是0.25。
abc分別對應(yīng)以上3種狀態(tài),可以使用矩陣計(jì)算得到穩(wěn)態(tài)幾率??梢越柚鶨xcel來計(jì)算概率。

紅框部分為狀態(tài)矩陣,綠框部分為概率矩陣。
兩個(gè)矩陣相乘,可以得到下一回合的概率矩陣,用狀態(tài)矩陣不斷的和得到的概率矩陣相乘,可以在某一回合達(dá)到穩(wěn)態(tài)分布。如圖中在11回合達(dá)到穩(wěn)態(tài)分布。
這樣我們就可以計(jì)算出這個(gè)技能的傷害期望了。