骰子游戏最大期望得分范围计算及停止策略下的期望求解问询
咱们先把这个骰子游戏的问题和你的思路理清楚,再一步步推导期望得分的计算方式:
问题回顾
我们正在玩一个骰子游戏:每次掷骰子并累加点数,随时可以停止并取当前累加和作为得分;但如果连续掷出相同的面,就会失去所有点数。请计算最大期望得分所在的范围?
你的停止策略验证
你的思路推导完全正确,这里再帮你梳理一遍核心逻辑:
假设当前累计得分为(S),上一次掷出的点数是(k),那么下一次掷骰子的期望得分由两部分组成:
- 有(\frac{1}{6})的概率掷出和(k)相同的点数,直接得0分;
- 有(\frac{5}{6})的概率掷出不同点数,此时新累计和的期望是(S + \frac{1+2+\dots+6 - k}{5})(排除已掷出的(k),剩下5个点数的平均值)
把这两部分计算合并,得到下一次的期望得分:
0 × 1/6 + (S + (21 - k)/5) × 5/6 = 5S/6 + (21 - k)/6
接下来判断是否值得继续掷:只有当这个期望得分不小于当前得分(S)时,继续掷才划算。代入不等式化简后得到:
(S ≤ 21 - k),也就是当前累计得分 + 上一次掷出的点数 ≤ 21时,应该继续掷;否则立即停止,取当前累计和作为得分。
如何计算该策略下的期望得分?
我们可以用递归倒推的方式来计算,利用骰子点数的对称性减少计算量:
1. 定义状态期望
我们定义(E_k(s))为:当前累计得分为(s),上一次掷出点数为(k)时的最大期望得分。
- 基例:如果(s + k > 21),说明继续掷不划算,直接停止,所以(E_k(s) = s);
- 递归式:如果(s + k ≤ 21),则继续掷,期望得分是(\frac{1}{6}×0 + \frac{1}{6}\sum_{m≠k} E_m(s + m))(1/6概率爆仓得0,剩下5种情况分别对应掷出不同点数后的期望)
2. 利用对称性简化计算
因为骰子的6个点数是对称的,当(s + k ≤21)且(s + l ≤21)时,(E_k(s) = E_l(s))(只是排除的点数不同,剩下5种情况的期望完全对称)。我们可以把这类情况的共同值记为(E(s)),只需要单独处理那些(s + k >21)的特殊情况。
3. 从大到小倒推计算
我们从最大的可停止状态开始倒推,比如:
- 当(s=20)时,(k=1)满足(20+1=21≤21),所以(E_1(20)=\frac{1}{6}(E_2(21)+E_3(22)+E_4(23)+E_5(24)+E_6(25))),而(E_2(21)=21)(因为21+2=23>21,直接停止),同理其他项分别为22、23、24、25,计算得(E_1(20)≈19.17);
- 当(s=20)时,(k≥2)都满足(20+k>21),所以(E_k(20)=20)。
按照这个逻辑,我们可以一步步倒推到(s=1)到(s=6)(第一次掷骰子后的累计得分),最后总期望就是第一次掷出每个点数后的期望的平均值:
(E_{total} = \frac{1}{6}\sum_{k=1}^6 E_k(k))
4. 期望得分的范围估算
通过完整的递归计算(或编程实现),可以得到这个策略下的最大期望得分大概在7.5到8.5之间,更精确的数值约为8左右。
备注:内容来源于stack exchange,提问作者Harsh

