作者stimim (史提米)
看板puzzle
標題Re: [問題] 擲骰算分
時間Wed Aug 26 20:02:49 2020
※ 引述《buffalobill (水牛比爾)》之銘言:
: 想到就po
: PuzzleUp風味題
: 先說這題我寫程式算的
: 紙筆的話我還不知道如何列式子……
: 【擲骰算分】
: 擲一枚公正骰子六次,並計算分數
: 分數的計算規則如下:
: 第1次擲骰:擲出的點數即為起始分數
: 第2~6次擲骰:與上一次擲骰作比較
: 若比上次擲骰點數高,則分數+1
: 若比上次擲骰點數低,則分數-1
: 若與上次擲骰點數相同,則分數加倍 (分數可小於0)
: 問:若第一次擲骰點數為2,則六次擲完分數的期望值為何?
: 以最簡分數作答
: 若只擲兩次,則期望值為 17/6
令 f(s, d, n) = "現在是 s 分,上一次的點數為 d ,還可以骰 n 次" 的期望值
f(s, 1, 1) = (7/6)*s + 5/6
f(s, 2, 1) = (7/6)*s + 3/6
f(s, 3, 1) = (7/6)*s + 1/6
f(s, 4, 1) = (7/6)*s - 1/6
f(s, 5, 1) = (7/6)*s - 3/6
f(s, 6, 1) = (7/6)*s - 5/6
觀察到 s 的係數都是 7/6 ,令常數為 b_{1,1}, b_{2,1}, ..., b_{6,1}
則 b_{1,1} = -b{6,1}, b_{2,1} = -b_{5,1}, b_{3,1} = -b_{4,1}
假設:
f(s, d, n-1) = a_{n-1} * s + b_{d,n-1}
且 b_{1,n-1} + b_{6,n-1} = b_{2,n-1} + b_{5,n-1} = b_{3,n-1} + b_{4,n-1} = 0
(在 n-1 = 1 時,假設成立)
則:
f(s, 1, n) = (1/6)*( f( 2s, 1, n-1)
+ f(s+1, 2, n-1)
+ f(s+1, 3, n-1)
+ f(s+1, 4, n-1)
+ f(s+1, 5, n-1)
+ f(s+1, 6, n-1))
= (1/6)*( a_{n-1}*2*s + b_{1,n-1}
+ a_{n-1}*(s + 1) + b_{2,n-1}
+ a_{n-1}*(s + 1) + b_{3,n-1}
+ a_{n-1}*(s + 1) + b_{4,n-1}
+ a_{n-1}*(s + 1) + b_{5,n-1}
+ a_{n-1}*(s + 1) + b_{6,n-1})
= (1/6) * ( 7*a_{n-1}*s + 5*a_{n-1} )
同理, f(s, 2, n) = (1/6) * (7*a_{n-1}*s + 3*a_{n-1})
f(s, 3, n) = (1/6) * (7*a_{n-1}*s + 1*a_{n-1})
f(s, 4, n) = (1/6) * (7*a_{n-1}*s - 1*a_{n-1})
f(s, 5, n) = (1/6) * (7*a_{n-1}*s - 3*a_{n-1})
f(s, 6, n) = (1/6) * (7*a_{n-1}*s - 5*a_{n-1})
==>
f(s, d, n) = ((7/6) * a_{n-1}) * s + b_{d,n}
b_{1,n} = b_{1,1} * a_{n-1}
b_{2,n} = b_{2,1} * a_{n-1}
b_{3,n} = b_{3,1} * a_{n-1}
b_{4,n} = b_{4,1} * a_{n-1}
b_{5,n} = b_{5,1} * a_{n-1}
b_{6,n} = b_{6,1} * a_{n-1} --> 方程組 (A)
且
b_{1,n} + b_{6,n} = b_{2,n} + b_{5,n} = b_{3,n} + b_{4,n} = 0 成立
由數學歸納法我們可以知道 方程組(A) 對所有 n >= 1 都成立。 且 a_n = (7/6)^n
題目所求 = f(2, 2, 5) = a_5 * 2 + b_{2,5}
= (7/6)^5 * 2 + (3/6) * (7/6)^4
後記 (馬後炮解釋為什麼會有漂亮的公式):
如果一開始的分數是 s ,接下來,除了骰到同點數分數加倍之外,所以有情況
都是在影響常數項。而且加倍的機率和現在的點數無關,一定是 1/6 。
如果我們把 +1, -1 改成 +0, -0 的話,g(s, d, n) = (7/6)^n * s
(我們用 "g" 來表示這個改過規則的遊戲)
而 +1 -1 的部份,可以想像我們從 +1 分或 -1 分開始玩,再玩 n-1 輪。
這部份的期望值和 s 無關,只和 d (現在的點數), n (還有幾輪) 有關
所以 f(s, d, n) = (7/6)^n * s + b_{d,n}
而 b_{d,n} 的部份,b_{d,n} 和 b_{7-d,n} 是對稱的遊戲。
把"若比上次擲骰點數高,則分數+1"和"若比上次擲骰點數低,則分數-1"交換,
相當於把點數重新指定(把骰子的 X 和 7-X 交換)
所以 b_{d,n} + b_{7-d,n} = 0 其實也不意外。
而且,因為 b_{d,n} + b_{7-d,n} == 0 ,就代表下一輪 (b_{d,n-1}) 的貢獻
會兩兩消掉,所以 b_{d,n} 只和 d 和 a_n 的值有關
(也就是這一輪有多少機率會 +1 或 -1 ,而 +1 和 -1 會如何被未來的遊戲放大)
而且不論這一輪是骰到 +1 或 -1 ,放大的係數都是一樣的,都是 a_{n-1}
==> b_{d,n} = (+1, -1 的期望值) * a_{n-1}
b_{d,n} = ((7 - 2 * d) / 6) * a_{n-1} (如果我們硬要寫成公式的話)
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 104.132.150.77 (美國)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/puzzle/M.1598443371.A.6B2.html
1F:推 arthurduh1: 推推XD 08/26 22:23