[機統] 很認真地詢問一個玩遊戲遇到的統計問題

看板Math作者 (阿泰斯)時間9年前 (2016/08/14 17:41), 9年前編輯推噓12(12048)
留言60則, 8人參與, 最新討論串1/1
小弟在玩遊戲時遇到一個很困難的統計問題... 問了玩家沒人知道... 想了一下,大概只有統計專精的人才會算吧... 問題: 武器效果1:當使用「招式3」命中敵人時,有50%的機率施放「招式1」與「招式2」 武器效果2:招式沒有暴擊時,拿到一顆藍色球;招式暴擊時,失去所有藍色球。 武器效果3:當藍色球消失時,得到等同於藍色球數量的紅色球。 PS. 藍色球、紅色球會影響招式2的傷害。 武器效果4:每增加一個藍色球,所有招式的暴擊機率都增加q。 (例如增加兩個藍色球時,暴擊機率增加2*q) 招式3的資訊: 傷害 : 0 暴擊機率 : z2 命中機率 : z3 攻擊速度 : z4 (每秒打z4次) 攻擊效果1 : 每打一次算是打z5次 (例如:每秒打6次,每打1次算是打12次,那等於每秒打6*12=72次) 招式1的資訊: 傷害 : x1 暴擊機率 : x2 命中機率 : 1 (100%) 招式2的資訊: 傷害(n個藍色球+m個紅色球,n或m可以為0,但n與m不可以同時為0) : ynm (例如:擁有4個藍色球與3個紅色球時,招式2的傷害為y43。若兩種顏色的球同時為0個, 則不會施放招式2) 暴擊機率 : y2 命中機率 : 1 (100%) 攻擊效果 : 施放招式2時,會失去所有顏色的球。 原始狀態: 藍色球與紅色球都是0個。 問題 : 最後統計出來每秒平均傷害是多少? 簡單計算 : 例如招式3攻擊速度6,打一下算9下,命中機率80%, 則招式3每秒命中6*9*0.8=43.2下。 如果問題有任何缺陷之類的,可以提出來,我再進行補充! 懇請各位大神幫忙! 感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.150.152.11 ※ 文章網址: https://www.ptt.cc/bbs/Math/M.1471167679.A.641.html ※ 編輯: candy88257 (118.150.152.11), 08/14/2016 17:44:01 ※ 編輯: candy88257 (118.150.152.11), 08/14/2016 17:54:29 ※ 編輯: candy88257 (118.150.152.11), 08/14/2016 18:02:27

08/14 18:28, , 1F
放心 國中數學能解
08/14 18:28, 1F
!!! 懇求樓上大神教學! ※ 編輯: candy88257 (118.150.152.11), 08/14/2016 18:30:33

08/14 18:31, , 2F
該不會是poe吧
08/14 18:31, 2F
是POE沒錯,只是如果我用poe的語言來講,應該沒人看得懂... ※ 編輯: candy88257 (118.150.152.11), 08/14/2016 18:36:14

08/14 20:20, , 3F
1. 變數名稱有點亂 機率/傷害 建議符號分開
08/14 20:20, 3F

08/14 20:20, , 4F
2. 可以考慮 Markov chain
08/14 20:20, 4F

08/14 20:20, , 5F
但你的 y_nm 不曉得有沒有規律,沒規律的話
08/14 20:20, 5F

08/14 20:20, , 6F
肯定會做出無窮級數
08/14 20:20, 6F

08/14 20:21, , 7F
3. 招式 2 的失去籃球效果應該無法觸發武器效果3?
08/14 20:21, 7F

08/14 20:22, , 8F
否則傷害會越來越大
08/14 20:22, 8F
感謝您協助! 1. 這部分我再統整一下一起修改好了! 抱歉! 2. y_nm看起來沒有一定的規律,但n與m有最大值。 拿到紅色球與藍色球的方法為:招式不暴擊,包刮招式1、2與3。(暴擊後籃球會消失) 而通常最一開始會先拿到藍球(招式3),然後藉由招式暴擊或招式2的效果的方式,藍球會 轉換成紅球。 3. 招式2的失去所有球的效果會觸發武器效果喔! ※ 編輯: candy88257 (118.150.152.11), 08/14/2016 20:46:19

08/14 21:03, , 9F
哦哦沒問題 傷害不會越變越大
08/14 21:03, 9F

08/14 21:04, , 10F
你的2. 應該是說 y_nm 本身有最大值??
08/14 21:04, 10F

08/14 21:05, , 11F
因為 n,m 標記的是球數,是有很小機率可以達到很多
08/14 21:05, 11F

08/14 21:05, , 12F
如果 y_nm 有最大值,那 Markov chain 就可以解了
08/14 21:05, 12F

08/14 21:08, , 13F
也不能說 y_nm 有最大值,應該說 n,m 夠大以後
08/14 21:08, 13F

08/14 21:08, , 14F
y_nm 就維持不動
08/14 21:08, 14F
抱歉補充一下, 是n、m有最大值, 例如我的n與m最多是4,也就是我的紅球跟藍球分別最多都只有4顆而已, 但n、m不會一直保持在最大值,因為招式3是一直連續施放的,所以因為暴擊、不暴擊與 招式2的因素,各種顏色的球會一直出現又消失。 不過,其實都一樣? 因為n、m到達最大值後,y_nm就是最大值了。 ※ 編輯: candy88257 (118.150.152.11), 08/14/2016 21:13:15 ※ 編輯: candy88257 (118.150.152.11), 08/14/2016 21:15:09 ※ 編輯: candy88257 (118.150.152.11), 08/14/2016 21:16:41

08/14 21:15, , 15F
恩恩OK 程式讓球數有最大值才合理
08/14 21:15, 15F

08/14 21:17, , 16F
那 (n, m) 就會有 17 種狀態,列出轉換矩陣就可解
08/14 21:17, 16F

08/14 21:20, , 17F
出各狀態在時間夠久後的發生機率。由於傷害數值與
08/14 21:20, 17F

08/14 21:20, , 18F
狀態是獨立的,再依此算出傷害平均值即可
08/14 21:20, 18F

08/14 21:27, , 19F
阿 不是 17 種... 是 25 種 =_=|||
08/14 21:27, 19F
感謝! 請問25種狀態是哪25種@@? ※ 編輯: candy88257 (118.150.152.11), 08/14/2016 21:36:36

08/14 21:48, , 20F
(n,m) = (0,0), (0,1), (0,2), (0,3), (0,4),
08/14 21:48, 20F

08/14 21:48, , 21F
(1,0), (1,1), (1,2), (1,3), (1,4), ...
08/14 21:48, 21F

08/14 21:48, , 22F
(4,0), (4,1), (4,2), (4,3), (4,4)
08/14 21:48, 22F

08/14 21:50, , 23F
當然這是滿暴力的作法,實務上你可以直接寫程式模擬
08/14 21:50, 23F

08/14 21:52, , 24F
也許更深入去探討這個模型會有辦法用估計的(手算)
08/14 21:52, 24F

08/14 21:53, , 25F
但我想你應該只是想要配攻擊點數之類的?
08/14 21:53, 25F
再次感謝! 其實我純粹只是好奇這個問題而已, 這已經是這遊戲的千古之謎了... 每次提到,每個玩家回答都是 : 無法計算... 只是,你剛說看25種狀況的發生機率,要怎麼看@@? 因為太複雜了...,3種招式都有暴擊 、不暴擊的情形... 能否詳細舉例幾個@@? ※ 編輯: candy88257 (118.150.152.11), 08/14/2016 21:56:47

08/14 21:58, , 26F
轉換矩陣你知道是什麼嗎? 就是從某一個狀態到另一
08/14 21:58, 26F

08/14 21:58, , 27F
個狀態的機率。這些機率只跟球數有關
08/14 21:58, 27F

08/14 22:02, , 28F
比如藍0紅1 到 藍2紅1 就是招式3觸發招式1且都
08/14 22:02, 28F

08/14 22:02, , 29F
無暴擊的機率
08/14 22:02, 29F
我有點亂掉了@@ 目前確定招式3會同時觸發招式1與2,但要計算球數時應該會有先後計算 的問題...,我再確定一下哪個會先觸發好了@@ 另外,您說的這個算法,會考慮到"暴擊機率"很高時,藍球達到最大球數的機率會變很低 的狀況嗎? (也就是暴擊機率也要考慮進去) ※ 編輯: candy88257 (118.150.152.11), 08/14/2016 22:12:20

08/14 22:22, , 30F
規則講清楚 機率可以列都沒問題
08/14 22:22, 30F
好的! 抱歉! 關於同時觸發時的計算順序,我再釐清一下再回覆您! 另外,我問題中提到的所有資訊,包含暴率、命中率、攻擊效果......等,應該皆會影響 到最後的每秒平均傷害。 ※ 編輯: candy88257 (118.150.152.11), 08/14/2016 22:47:31

08/14 23:47, , 31F
不用回沒關係啦... 我也沒時間把那個矩陣弄出來啊
08/14 23:47, 31F

08/14 23:49, , 32F
但你首先就是根據這些規則算出從 藍a紅b 到 藍m紅n
08/14 23:49, 32F

08/14 23:50, , 33F
的機率,做出轉換矩陣後,算 stable 時的機率
08/14 23:50, 33F

08/14 23:50, , 34F
再用這些機率算傷害
08/14 23:50, 34F

08/14 23:52, , 35F
比如上面的「招式3觸發招式1且都無暴擊」的機率
08/14 23:52, 35F

08/14 23:52, , 36F
會根據你給的規則而不同,你只要確定你會算這項
08/14 23:52, 36F

08/14 23:53, , 37F
其他都差不多了(但有 25 x 25 = 625 項...)
08/14 23:53, 37F

08/14 23:53, , 38F
(雖然有一些是 0 啦)
08/14 23:53, 38F
請問您的625項怎來的@@? 我算3個招式有無暴擊的搭配只有8種,搭配球的組合25總,總共只有200項... 請問哪裡算錯了嗎@@? ※ 編輯: candy88257 (118.150.152.11), 08/15/2016 01:00:45

08/15 03:08, , 39F
那個 625 項是從某種球組合變成另一種球組合的變化
08/15 03:08, 39F

08/15 03:10, , 40F
不只是單指某狀態下使用招式的狀況
08/15 03:10, 40F

08/15 03:11, , 41F
當然存在一些變化型由於各種原因是絕不會出現的
08/15 03:11, 41F

08/15 03:11, , 42F
那些項的機率就是 0 這樣
08/15 03:11, 42F

08/15 07:02, , 43F
.....就算算式列不出來 也可以靠跑模擬跑出來平均啊
08/15 07:02, 43F

08/15 08:09, , 44F
你是對的,頂多 200 項非零
08/15 08:09, 44F

08/15 08:33, , 45F
其實最後要求 stable 機率還是逃不了用電腦
08/15 08:33, 45F

08/15 08:34, , 46F
你可以考慮用電腦 1. 做矩陣 2. 直接模擬
08/15 08:34, 46F

08/15 08:35, , 47F
1. 的誤差是數值處理上 2. 的誤差則是統計上,效力
08/15 08:35, 47F

08/15 08:36, , 48F
比較弱一點,但在這裡實務上應是沒啥區別
08/15 08:36, 48F

08/15 08:37, , 49F
而且相對 1. 來說寫程式的出錯率可能低一點
08/15 08:37, 49F

08/15 20:57, , 50F
其實我不太懂大家說的寫程式模擬是什麼。我學的模
08/15 20:57, 50F

08/15 20:58, , 51F
是comsol
08/15 20:58, 51F

08/15 21:00, , 52F
學過類似程式的軟體是matlab、mathematica
08/15 21:00, 52F

08/15 21:00, , 53F
還有excel
08/15 21:00, 53F

08/15 21:00, , 54F
這些有辦法直接模擬這個問題嗎?
08/15 21:00, 54F

08/15 21:02, , 55F
由於好奇,剛剛去查matlab的指令,
08/15 21:02, 55F

08/15 21:02, , 56F
還真的有一個指令是markov...
08/15 21:02, 56F

08/15 21:12, , 57F
有人用matlab嗎? 用matlab這題要怎算?
08/15 21:12, 57F

08/16 23:07, , 58F
程式模擬就是真的把規則寫好,亂數產生器套上去
08/16 23:07, 58F

08/16 23:08, , 59F
給他打個十萬下再來分析各種結果的分布
08/16 23:08, 59F

09/05 14:54, , 60F
POE
09/05 14:54, 60F
文章代碼(AID): #1Ni3o_P1 (Math)