作者flarehunter (Range)
看板Unlight
標題Re: [心得] 獎勵遊戲機率一覽
時間Sat Mar 10 21:25:15 2012
我用程式跑出期望值啦
以25關為例
如果有無限花1的話
平均玩一次獎勵遊戲要用掉0.68個花1
但是失敗機率是0.96 所以平均成功一次需要21.67個花1...
如果有無限花1也有無限花3的話
平均玩一次獎勵遊戲要用1.67個花1 1.86個花3
平均成功一次需要2.9個花1 3.25個花3
約莫是2538Gem
程式碼在這
http://ppt.cc/bDh8 用C++寫的
要玩的可以試試看 順便看看有沒有bug XDD
※ 引述《flarehunter (Range)》之銘言:
: 我也用馬可夫鏈算了一次
: 因為大小對稱 所以2和12點視為同一個狀態 3和11點視為同一個狀態
: 每個狀態的機率分別是
: 2(12) 3(11) 4(10) 5(9) 6(8) 7
: ---------------------------------
: 2 4 6 8 10 6 除以36
: 加上一個爆掉的狀態(X)總共有7個
: 把轉移機率列一列就會變成下面的表
: X 2 3 4 5 6 7
: ------------------------------
: X| 36 0 1 3 6 10 15
: 2| 0 2 1 1 1 1 1
: 3| 0 4 4 2 2 2 2
: 4| 0 6 6 6 3 3 3 (每個值都除以36)
: 5| 0 8 8 8 8 4 4
: 6| 0 10 10 10 10 10 5
: 7| 0 6 6 6 6 6 6
: 把這個矩陣叫做A好了
: 那一開始的點數機率就叫x好了 不如就設個 [0 2 4 6 8 10 6]' ./ 36吧
: 衝到第10關的機率分布就會是 A^10 * x
: 第一項就是爆掉的機率 經過快速的計算就是0.9215
: 衝到第25關爆掉的機率就是0.9984
: 如果有無限1花的話 轉移機率就會是
: X 2 3 4 5 6 7
: ------------------------------
: X| 36 0 0 1 3 6 10
: 2| 0 2 2 1 1 1 1
: 3| 0 4 4 4 2 2 2
: 4| 0 6 6 6 6 3 3 (每個值都除以36)
: 5| 0 8 8 8 8 8 4
: 6| 0 10 10 10 10 10 10
: 7| 0 6 6 6 6 6 6
: 用一樣的方法算一算
: 衝到第10關爆掉是0.7459
: 25關是0.9683
: 無限3花的話就不列轉移矩陣了...
: 結果整理一下 爆掉的機率如下 (原PO格式借我一下XD)
: 第10關 第25關
: 完全不使用花/草/星的情況 92.15% 99.84%
: 最高使用1花的情況 74.59% 96.83%
: 最高使用3花的情況 19.98% 42.77%
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.162.102.252
推 TabrisXVII:有無限花五 成功率100% 03/10 21:26
推 azlbf:花5也怕眼殘.. 所以我都留5星 反正用不到也沒差 03/10 21:27
推 rabbit190:有無限星,沒有失敗率這種事。 03/10 21:28
推 DevCPP:跟我算的一樣,應該是對的。 03/10 21:31
→ DevCPP:有沒有興趣看看我的程式碼,五十幾行就搞定了=w= 03/10 21:31
推 aoeandy:敢瞧不起樓上ID的人已經被21了 03/10 21:33
推 chipson:樓樓上可以告訴我 Devc++ 4.9.9.2 版 如何監看陣列嗎? 03/10 21:36
→ chipson:只要用變數宣告的陣列 監看時都會變成 記憶體位置耶 03/10 21:36
推 DevCPP:不過,你的程式碼通通沒註解,旁人真要幫debug會很辛苦吧XD 03/10 21:37
→ chipson:例如 a=5; int A[a]; A[1]=1 我要監看A[1]的時候會變位置 03/10 21:37
→ DevCPP:不可以~因為我也不知道為什麼我怪怪的XDD 03/10 21:38
→ chipson:= = 我是有偷吃步拉 打成*(A[0]+1) 就可以監看A[1]的值 03/10 21:39
→ chipson:不過不是很方便 面對二維陣列 還要算一下 DEV 真難用 03/10 21:39
推 DevCPP:聽說dev有一些bug,不過我是很初階的使用者,所以也不清楚 03/10 21:41
→ flarehunter:哦50行搞定啊那貼上來看看啊~ 03/10 21:41
→ DevCPP:我只是不小心搶到這個ID而已XDD 03/10 21:41
→ flarehunter:我想試試看code能不能在沒有註解也可以被看懂XD 03/10 21:43
推 fish770130:只有試跑了一下 變數名稱太隨意懶的看wwww 03/10 21:48
→ fish770130:大致上是看的懂啦~ 03/10 21:48
→ flarehunter:chipson不定大小的陣列要用new或是malloc要記憶體吧 03/10 21:49
→ flarehunter:噢對了我的程式也可以算有限花1和花3的失敗率 03/10 21:50
推 chipson:喔 對了 我是用 C語言 可能無法用NEW malloc我試過 03/10 21:50
推 flyindeepsky:資工人來推一下XD 03/10 21:50
→ chipson:一樣是無法監看 03/10 21:50
推 fish770130:阿 我指的是D大不是原PO 03/10 21:50
推 kaosu:推~ 03/10 21:54