2015年9月11日 星期五

遊戲中的二項式分佈

遊戲裡面常常有成功率這個東西,像是成功強化武器的機率、某個技能附加能力的發動機率、抽中稀有卡片的機率等等。大多時候,單看這個數字並沒有甚麼意思,我們反而比較會在意,到底在我成功以前我要失敗幾次、投入多少資源?

到底要嘗試幾次,在這其中至少有一次成功的機率才可以提升到50%以上?


以抽卡來說好了,假設抽一次有5%的機率會成功抽中稀有卡片,除此之外抽中非稀有卡片都算是失敗,而且每次抽卡結果都是獨立事件。那到底要連抽幾次,才能有50%以上的機會可以抽中一張稀有卡?

這種情況就可以套用二項式分佈。二項式分佈的一般性公式我們可以寫成:
 f(k;n,p) = \Pr(K = k) = {n\choose k}p^k(1-p)^{n-k}
其中,k代表目標成功次數,n代表測試總數,p代表單次測試的成功機率。

回到抽卡的例子,我如果要計算出,在 10 次測試裡面,抽中 0 張稀有卡的機率,其中單一抽抽中稀有卡的機率為 5% ,那麼套進去計算:



答案大約為59.9%,也就是有接近六成的機會,10 抽抽不到稀有卡。

那要怎麼計算至少一張的機率?很簡單,排除掉完全抽不到稀有卡的情況以後,剩下來的情況就代表有抽中至少一張。所以在這裡,有1 - 59.9% = 40.1%的機率會抽到至少一張。

用Excel列表


到這邊其實可以用Excel的 BINOMDIST 公式來幫我們計算。BINOMIDIST分別接受四個參數,其中前三個參數分別是k, n, p。第四個參數改變此函數的行為,如果為 0 ,表示計算正好為 k 次成功的機率;如果為 1 ,表示計算最多有 k 次成功的機率。


正確的成功率公式如上圖,紅圈圈起來的那格。

藉由Excel的功能,我們可以很輕鬆的增加 n 值,觀察在不同測試次數下的中獎機會。回到前面抽卡的例子,我們可以看出,在14次抽獎以後,抽中至少一張稀有卡的機率會提升到50%以上。

算這個要幹嘛?


知道了達成50%成功率的最小 n 值後,我們可以用它來估計所需要投入的資源成本,不管是虛擬貨幣還是新台幣,從而與得到的回報相比,判斷是否需要把珍貴的資源投入進去。

雖然我這裡以遊戲為例子,但這個計算可以套用到生活中的許多例子,希望供大家參考利用。

關於二項式分佈,可以參考以下網頁:
https://zh.wikipedia.org/wiki/%E4%BA%8C%E9%A0%85%E5%88%86%E4%BD%88
http://dufu.math.ncu.edu.tw/calculus/calculus_eng/node222.html