作者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/cn.aspx?n=bbs/puzzle/M.1598443371.A.6B2.html
1F:推 arthurduh1: 推推XD 08/26 22:23