作者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
1F:推 TabrisXVII:有无限花五 成功率100% 03/10 21:26
2F:推 azlbf:花5也怕眼残.. 所以我都留5星 反正用不到也没差 03/10 21:27
3F:推 rabbit190:有无限星,没有失败率这种事。 03/10 21:28
4F:推 DevCPP:跟我算的一样,应该是对的。 03/10 21:31
5F:→ DevCPP:有没有兴趣看看我的程式码,五十几行就搞定了=w= 03/10 21:31
6F:推 aoeandy:敢瞧不起楼上ID的人已经被21了 03/10 21:33
7F:推 chipson:楼楼上可以告诉我 Devc++ 4.9.9.2 版 如何监看阵列吗? 03/10 21:36
8F:→ chipson:只要用变数宣告的阵列 监看时都会变成 记忆体位置耶 03/10 21:36
9F:推 DevCPP:不过,你的程式码通通没注解,旁人真要帮debug会很辛苦吧XD 03/10 21:37
10F:→ chipson:例如 a=5; int A[a]; A[1]=1 我要监看A[1]的时候会变位置 03/10 21:37
11F:→ DevCPP:不可以~因为我也不知道为什麽我怪怪的XDD 03/10 21:38
12F:→ chipson:= = 我是有偷吃步拉 打成*(A[0]+1) 就可以监看A[1]的值 03/10 21:39
13F:→ chipson:不过不是很方便 面对二维阵列 还要算一下 DEV 真难用 03/10 21:39
14F:推 DevCPP:听说dev有一些bug,不过我是很初阶的使用者,所以也不清楚 03/10 21:41
15F:→ flarehunter:哦50行搞定啊那贴上来看看啊~ 03/10 21:41
16F:→ DevCPP:我只是不小心抢到这个ID而已XDD 03/10 21:41
18F:→ flarehunter:我想试试看code能不能在没有注解也可以被看懂XD 03/10 21:43
19F:推 fish770130:只有试跑了一下 变数名称太随意懒的看wwww 03/10 21:48
20F:→ fish770130:大致上是看的懂啦~ 03/10 21:48
21F:→ flarehunter:chipson不定大小的阵列要用new或是malloc要记忆体吧 03/10 21:49
22F:→ flarehunter:噢对了我的程式也可以算有限花1和花3的失败率 03/10 21:50
23F:推 chipson:喔 对了 我是用 C语言 可能无法用NEW malloc我试过 03/10 21:50
24F:推 flyindeepsky:资工人来推一下XD 03/10 21:50
25F:→ chipson:一样是无法监看 03/10 21:50
26F:推 fish770130:阿 我指的是D大不是原PO 03/10 21:50
27F:推 kaosu:推~ 03/10 21:54