看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《kyoiku (生死間有大恐怖)》之銘言: : ※ 引述《kyoiku (生死間有大恐怖)》之銘言: : : 某遊戲中武器衝星規則如下: : : 1. 武器初始 0 星,每次衝星需消耗一張武卷。 : : 2. 武器 0 星衝 1 星之機率為 1/2。 : : 3. 衝星成功則武器星數變為 1 星,若否則仍是 0 星。 : : 求武器 0 星衝 1 星平均需用幾張武卷? : 想請教大家一個問題。 : 我們都知道遊戲中武器衝星可以一直衝上去,例如承上面 3 點還可以再有: : 4. 武器 1 星衝到 2 星之機率為 40%,失敗則降為 0 星。 : 5. 武器 2 星衝到 3 星之機率為 30%,失敗則降為 1 星。 : 6. 武器 3 星衝到 4 星之機率為 20%,失敗則降為 2 星。 : 7. 武器 4 星衝到 5 星之機率為 10%,失敗則降為 3 星。 : 想求武器從 0 星衝 5 星平均需用幾張武卷? : 當然這用數學可以準確算出,但是牽涉到機率論中的馬可夫鏈和線代對角化。 : 我算過,但對角化特徵值數字不好要用 MATLAB 算近似值, 其實數學並不難 而且用不到特徵值 令由 +i 起到 +5 止需要 Ei 張武卷 (用 +i 我比較熟 XD) 那麼我們可以列出 E0 = 1 + .5 E0 + .5 E1 (一次之後有 0.5 在 +0 有 0.5 在 +1) E1 = 1 + .6 E0 + .4 E2 (etc.) E2 = 1 + .7 E1 + .3 E3 E3 = 1 + .8 E2 + .2 E4 E4 = 1 + .9 E3 + .1 E5 E5 = 0 解聯立方程可得 E0 = 2191/3, E1 = 2185/3, E2 = 4337/6, E3 = 2120/3, E4 = 637 (因為這矩陣是三對角線矩陣 比較單純 我在一張提款機收據的背面做 LU 分解就做得出來...) 2191/3 ≒ 730.33333 所以前篇推文做的 730 其實很準 XD 話說回來 這樣一分析 寫數學解的程式就很方便 只要任何一個可以解線性聯立方程的程式都行 -- いああオレたちには見えてるモノがあるbきっと誰にも奪われないモノがあるはずさ開口一番一虚一実跳梁跋扈形影相弔yL羊頭狗肉東奔西走国士無双南柯之夢 歪も ぶ  意味がないと思えるコトがあるPきっとでも意図はそこに必ずある んの く 依依恋恋空前絶後疾風怒濤有無相生H急転直下物情騷然愚者一得相思相愛 だが ろ 無意味じゃない6あの意図 恋た で 有為転変死生有命蒼天已死黄天當立 !!6五里霧中解散宣言千錯万綜則天去私 のり -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.30.131
kyoiku:我算出來的理論張數是 719.1447 04/15 20:42
VictorTom:真是一群魔人....XD 04/15 20:54
yoco315:E4 = 1 + .9 E3 + .1 E5 好似怪怪的?因為到了e5不用退下來 04/15 21:16
yoco315:kyoiku 的 transition matrix 應該是對的 04/15 21:17
yoco315:但求解不知道需不需要用到 eigen,我的話應該會跟你一樣 04/15 21:19
yoco315:直接解聯立 @@ 04/15 21:20
loveme00835:很直覺是這樣算 04/15 21:22
james732:原來730是對的,我還想說為什麼算不出719...XDDD 04/15 21:38
kyoiku:老實說我看不懂LPH大的解法,@@。我對期望張數的定義是 04/15 22:11
kyoiku:(剛好用N張衝到+5的機率)乘以(N),再把 N 從 1 加到無窮大 04/15 22:12
kyoiku:所以期望張數是一個無窮級數的和 04/15 22:13
loveme00835:把星數想成不同狀態, 個別有增加/減少兩種可能, 再加 04/15 22:18
loveme00835:上遞迴關係來推 04/15 22:19
james732:這是我的簡單程式 http://pastie.org/1797634 04/15 22:34
LPH66:回三樓 所以 E5=0 啊 04/15 23:55
yoco315:kerker 對喔 我傻了 XD 04/16 00:00
早上起來看到被版主結案了.... 沒看到第三篇不知道原 PO 進度如何 不過還是照著原 PO 的思路做一次給他看 http://w.csie.org/~b94102/math/Math38.pdf 這樣應該能讓原 PO 找出他的計算錯誤在哪裡了 (他的方法思路上當然沒問題 單純只是計算問題而已) 再討論下去離版題就太遠 就此打住吧 ※ 編輯: LPH66 來自: 140.112.28.92 (04/16 09:18)
kevinnewgame:我有修過simulation的課,剛好可以解決你的問題。 04/16 13:19
kevinnewgame:我們用的隨機數剛好介於0~1 04/16 13:20
kevinnewgame:ex:你要的機率是0.3,Ans:if(rand()<0.3) else... 04/16 13:22
kevinnewgame:要隨機數的程式碼的話寄站內信給我就好了 04/16 13:23
kevinnewgame:附加說明,我們是先寫好程式碼,然後#include拿來用 04/16 13:25
kevinnewgame:機率的模擬已經有人在研究了。推ROSS的simulation 04/16 13:26
kevinnewgame:解決類似問題你可以用機率問題的方式解決 04/16 13:27
kevinnewgame:因為我覺得你的事件就是屬於幾何分布(不完全) 04/16 13:28
jubilee2:一個遊戲能玩成這樣子!這個國家實在是非常的強 04/16 17:46
loveme00835:原PO好像隱約透露自己的年齡 :P 04/16 21:56
kyoiku:To LPH66:我們的方法都一樣,只有用matlab作計算的部份不同 04/16 23:52
kyoiku:也許是我鍵入數字時打錯,不過也無從查起了,@@ 04/16 23:53
kyoiku:你的方法我後來有看懂了,就是+1用了一張後有0.5的機會要再 04/16 23:54
kyoiku:用要 E0 張才會+5,有0.4的機會要再用E2張才會+5 04/16 23:55