Re: [問題] 骰子遊戲

看板puzzle (益智遊戲 - 數獨,拼圖,推理,西洋棋)作者 (qqaa)時間15年前 (2010/12/17 09:47), 編輯推噓3(301)
留言4則, 3人參與, 最新討論串2/2 (看更多)
我的想法是,算期望值,如果放在十位數的期望值比放在個位數高, 就放十位數,反之亦然。 EX: 現在你已經得了 100 分,你還剩 1 個十位數、1 個個位數可以放, 當你擲到 3 的時候,你應該要放在哪裡? 1. 放在個位數 => (103 * 4 + (10 + 20 + 30 + 40)) / 6 = 85.33 2. 放在十位數 => 130 + (1 + 2 + 3 + 4 + 5 + 6) / 6 = 133.5 所以應該要放在十位數。# 令函數 E(tens , ones , point , score) 代表: 還有 tens 個 十位數、 ones 個 個位數,要放的點數是 point , 現在的分數是 score 時,所得分數的期望值 當 tens, ones > 1 時 E(tens , ones , point , score) = max{ Sum[E(tens - 1 , ones , 1 ~ 6 , score + point * 10)] / 6 , Sum[E(tens , ones - 1 , 1 ~ 6 , score + point)] / 6 } 如果要建表的話,最多有 5 * 5 * 6 * 151 格 (tens , ones = 0 ~ 4, point = 1 ~ 6 , score = 0 ~ 150) 很快就可以算完了,這樣算出來的期望值是 118.621 ,比 100 大一些些。 實測 10000 次,平均 118.7 ,爆掉 1077 次 (爆掉的算 0 分) Code: http://codepad.org/3Wpwdswj 主要的重點是 decide 這個函數,把現在的狀態傳入,傳回兩個值: 1. 選擇 (個位數 或 十位數) 2. 在這種選擇下的期望值 -------------------------------------------------------------------------- 如果把電腦的選擇記下來,會得到這個表: http://codepad.org/R3hdLwuc 這裡已經把沒什麼好選的(只能選十位或只能選個位)或是怎麼選都是爆掉的去掉了, 還是有大約 200 條 "規則" ,不過還看不出來能不能簡化。 (畢竟當人在玩的時候不太可能看著手上的200條規則來玩, 理想上是把規則化簡到十條以內) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.4.196

12/17 15:51, , 1F
好像一個有兩百條規則的自動機。最佳化問題真有趣。
12/17 15:51, 1F

12/17 15:53, , 2F
E函數的角色像選擇函數。最佳化=改參數使E最大化。
12/17 15:53, 2F

12/17 16:27, , 3F
放在個位數的那行應該是(103*4+10+20+30+40)/6 = 85.3333
12/17 16:27, 3F
已更正,謝謝! ※ 編輯: stimim 來自: 60.250.111.125 (12/17 17:19)

12/17 23:01, , 4F
期望值耶,對耶,期望值耶! 我怎麼沒想到 = ="
12/17 23:01, 4F
文章代碼(AID): #1D2i4-dA (puzzle)
討論串 (同標題文章)
文章代碼(AID): #1D2i4-dA (puzzle)