pig game expectation

  数学 概率论 趣味数学    浏览次数:2722        分享
0

如果一个人扔个6面骰子, 如果扔到了任一不是bad number的数,都可以得到对应数的奖金, 并且可以选择是否选择继续参加游戏, 如果不继续就可以带走手上所有的钱. 如果扔到了bad number (假设是1), 就必须交付手上现有的所有的钱并且中止游戏. 请问这个游戏的期望是多少?

 

lethe63   2019-02-07 04:10



   2个回答 
4

假设扔完$k$次之后,手上钱的期望为$E_k$。

显然

$$E_1=\frac{0+2+3+4+5+6}{6}=\frac{10}{3}$$

并且

$$E_{k+1}=\frac{1}{6}0+\frac{5}{6}(E_k+4)=\frac{5}{6}E_k+\frac{10}{3}$$

当$E_{k+1}=E_k$的时候,停止扔骰子,此时$E_k=20$。

SofaSofa数据科学社区DS面试题库 DS面经

淡淡的   2019-02-07 14:03

非常感谢, 很intuitive. - lethe63   2019-02-12 03:24
Ek+4怎么来的? - fishinsnow   2020-07-28 13:15
4=(2+3+4+5+6)/5,也就是每步不扔1时得到奖金的期望。 - Zealing   2020-07-29 02:44
3

有个Hold at 20 turn的策略,每一步期望的最大值是20,如果当前得分达到20,就要见好而收。

假设策略是一直扔骰子,求扔到1前得分的均值。

第$k$步的概率$p_k=\frac{(5/6)^{k-1}}{\sum_{k=1}^{\infty}(5/6)^{k-1}}$,分子为归一化因子。

第$k$步得分的均值是$E_{k}(score)=4k*(5/6)+0*1/6$

得分的均值

$$E(score)=\sum_{k=1}^{\infty}p_kE_k(score)$$

$$=\frac{\sum_{k=1}^{\infty}4k(5/6)^k}{\sum_{k=1}^{\infty}(5/6)^{k-1}}$$

$$=120/6$$

$$=20$$

用MC验证:

import numpy as np
n=10000
score=np.zeros(n)
step=np.zeros(n)
for i in range(n):
  x=np.random.randint(low=1,high=7)
  while x>1:
    score[i]+=x
    step[i]+=1
    x=np.random.randint(low=1,high=7)
    
print("E(score)=%f"%score.mean())
print("E(step)=%f"%step.mean())

结果是

E(score)=19.878700
E(step)=4.978100
SofaSofa数据科学社区DS面试题库 DS面经

Zealing   2019-02-08 03:27

谢谢, 非常清楚. 所以hold at 20 turn这个策略就是根据期望值是20这个结果的得出的结论是吗? - lethe63   2019-02-12 03:24


  相关讨论

[0, 1]内随机抽取n个不重叠闭区间的概率

圆环上随机三个点组成一个锐角三角形的概率

三个人打牌,大王小王都在同一个人的概率是多大?

关于三门问题的疑问

%%timeit

轮流射击先中枪的概率题

一米长的绳子,随机剪两刀,最长的一段有多长?

等车概率题

什么是Jensen不等式?有什么直观的解释?

证明马尔可夫不等式

  随便看看

怎么理解推荐系统中的NDCG?

柯西分布没有数学期望

plt.show()之后matplotlib图像依然不展示

统计里的IQR是什么意思?

特征归一化对K Means有影响吗?