作者:
c910335 (達人)
2015-06-03 20:32:29原文恕刪
<<前言>>
以下皆為高中數學
然而我自認為數學能力不算出眾
如有誤請指出不要炮我QAQ
讓我們用數學分析三色陣的Combo數
目標是算出每種最大Combo數發生之機率
為此必須要先得知每種盤面的Combo數及開出其之機率
<<Combo數>>
這個實在是想不到100%正確的算法
我所使用的算法是將每屬珠的數量除以三再加總
但是若有一屬數量超過19
那麼就以下列方式計
20~22: 5
23 : 4
24 : 3
我目前無法證明這樣的算法是正確的
希望能有人舉出反例 <(_ _)>
以下舉幾個計算Combo數的例子
(24, 3, 3) => 3 + 1 + 1 = 5Combo
(10, 10, 10) => 3 + 3 + 3 = 9Combo
(20, 6, 4) => 5 + 2 + 1 = 8Combo
(13, 9, 8) => 4 + 3 + 2 = 9Combo
<<單一盤面機率>>
令一盤面珠子數量為(a, b, c) //其中a b c >= 3, 且 a + b + c = 30
那麼三色陣開出這種盤面的機率為
(1/3)^30 * 30! / a! / b! / c! / Valid_Board_Probability
//其中Valid_Board_Probability為三色陣每屬皆開出三顆以上之機率
讓我慢慢解釋這個公式是如何求得的
先以簡單的擲硬幣作為例子
擲兩次硬幣 皆開出正面的機率是1/4
因為擲出正面的機率是1/2
皆兩次正面的就是(1/2) * (1/2) = 1/4
由此推廣到PAD三色陣就是(1/3)^30
那麼擲兩次硬幣 而開出一正一反的機率?
擲出正面機率是1/2 擲出反面機率是1/2 正反就是1/4
但是一正一反會有"正反"與"反正"二種情形
必須再乘上排列數
所以機率是(1/2) * (1/2) * 2 = 1/2
由此推廣到PAD三色陣就是(1/3)^30 * 30! / a! / b! / c!
再來擲三次硬幣 在至少開出一正的條件下 開出恰好一反的條件機率?
正正反機率是(1/2)^3 算上三種排列是(1/2)^3 * 3
但是這裡要求至少一正的條件下
而至少一正的機率是所有情形扣掉全反 1 - (1/2)^3 = 7/8
所以條件機率是(1/2)^3 * 3 / (7/8) = 3/7
由此推廣到PAD三色陣就是
(1/3)^30 * 30! / a! / b! / c! / Valid_Board_Probability
那麼Valid_Board_Probability到底是什麼?
由於三色陣保證每屬至少三顆
所以我們想要知道的機率是每屬至少開出三顆的條件下之條件機率
因此需要先算出Valid_Board_Probability
可以使用(1/3)^30 * 30! / a! / b! / c!
將所有合法盤面代入並加總機率
可得Valid_Board_Probability約為 0.9980482534542854
所以實際上公式為 (1/3)^30 * 30! / a! / b! / c! / 0.9980482534542854
不知道這樣解釋能不能理解?
以下舉幾個例子
(10, 10, 10): 0.02701355838113663
(24, 3, 3): 5.779133453214403 * 10^(-8)
(17, 7, 6): 0.001000090602345659
<<結論>>
將所有可行盤面代入公式計算盤面
並依照Combo數加總其機率
可得以下結果
5Combo: 13650 / 78731526739 = 1.733740035964324 * 10^(-7)
6Combo: 163800 / 78731526739 = 2.0804880431571887 * 10^(-6)
7Combo: 14071239 / 78731526739 = 1.787243253474183 * 10^(-4)
8Combo: 8737170195 / 78731526739 = 0.11097422540736791
9Combo: 61218244745 / 78731526739 = 0.7775569365997735
10Combo: 8761863110 / 78731526739 = 0.11128785980546435
期望值: 708579745088 / 78731526739 = 8.999949250787258 (Thanks Yamamoto!)
<<後話>>
以上皆為高中數學
然而我自認為數學能力不算出眾
如有誤請指出不要炮我QAQ
若是造成遊戲內的損失 本人一概不負責
打完了好累...