抛硬币时随机变量的期望值

机器算法验证 可能性 随机过程
2022-04-01 21:10:45

今天遇到一个有趣的问题。给你一个硬币和x个钱,如果你正面朝上,你会加倍,如果反面,你会输一半。

  1. 在 n 次尝试中你的钱的期望值是多少
  2. (1)中获得超过预期值的概率是多少

这就是我接近它的方式。正面和反面的概率相同(1/2)。第一次投掷后的期望值 =1/2(2x)+1/2(1/2x)=5x/4所以期望值为5x/4在第一次折腾之后。类似地在 5x/4 上重复第二次投掷期望,第二次投掷后的期望值 =1/2(25x/4)+1/2(1/25x/4)=25x/16

所以你得到一系列期望值:5x/4,25x/16,125x/64, ...

n尝试,您的期望值应该是(5n/4n)x.

如果n足够大,您的期望值应该接近分布的平均值。所以值大于期望值的概率应该是0.5. 我不确定这个。

3个回答

如果 n 足够大,您的期望值应该接近分布的平均值。

对,那是正确的。

所以值大于预期值的概率应该是 0.5。

这只有在分布是对称的情况下才是正确的——在您的游戏中并非如此。如果您考虑一下您的奖金的中值应该是多少,您可以很容易地看到这一点n抛出。


您可以将您的问题视为随机游走基本的一维随机游走是在整数实线上的游走,在每个点我们移动±1有概率p. 如果我们忽略货币的翻倍/减半并设置,这正是您所拥有的p=0.5. 我们所要做的就是将您的坐标系重新映射到此示例。x成为你最初的起始底池。然后我们通过以下方式重新映射:

x*2^{-2} = -2
x*2^{-1} = -1 
  x = 0
 x*2 = 1  

IE2kx=k. Sn表示我们从游戏中赚了多少钱n转身,然后

Pr(Sn=2kx)=2n(n(n+k)/2)
forn(n+k)/20

不是 2 的倍数时,则为了理解这一点,假设我们从 10 英镑开始。转之后,唯一可能的值是 £5 或 £20,即(n+k)Pr(Sn)=0n=1k=1k=1

上述结果是随机游走的标准结果。谷歌随机游走以获取更多信息。同样从随机游走理论,我们可以计算出中值回报为,这与期望值不同。x

注意:我假设你总是可以把你的钱减半。例如,1pence、0.5pence、0.25pence 都是允许的。如果你去掉这个假设,那么你就有了一个带有吸收墙的随机游走。


为了完整性

这是您流程的 R 中的快速模拟:

#Simulate 10 throws with a starting amount of x=money=10
#n=10
simulate = function(){
  #money won/lost in a single game
  money = 10
  for(i in 1:10){
    if(runif(1) < 0.5)
      money = money/2
    else
      money = 2*money
  }
  return(money)
}

#The Money vector keeps track of all the games
#N is the number of games we play
N = 1000
Money = numeric(N)
for(i in 1:N)
  Money[i]= simulate()

mean(Money);median(Money)
#Probabilities
#Simulated
table(Money)/1000
#Exact
2^{-10}*choose(10,10/2)

#Plot the simulations
plot(Money)

次游戏后的财富,我们假设这里的诱惑是取,并将研究为对称随机游走,创新大小为事实证明,这对于第二个问题很好,但不是第一个问题。一些工作将表明,渐近我们有由此你不能断定是渐近对数正态分布的,SkkS0=1.Xk=logSkXk±log2XkN(0,k(log2)2)Skμ=0,σ=log2k.日志操作不限时通勤。如果是这样,您将获得,这几乎是正确的,但并不完全正确。Skexp(klog2log2/2)

但是,此方法适用于查找的分位数以及其他概率问题,例如问题 (2)。我们有最后一个不等式左侧的量是渐近标准正态的,因此超过其平均值的概率接近其中是标准法线的 CDF。这相当快地接近零。SkSk(54)kXkklog(5/4)Xk/klog2klog(5/4)/log2.Sk1Φ(klog(5/4)/log2),Φ

Matlab代码来检查这个:

top_k = 512;
nsamps = 8192;
innovs = log(2) * cumsum(sign(randn(top_k,nsamps)),1);
s_k = exp(innovs);
k_vals = (1:top_k)';
mean_v = (5/4) .^ k_vals;
exceed = bsxfun(@ge,s_k,mean_v);
prob_g = mean(double(exceed),2);

%theoretical value
%(can you believe matlab doesn't come with normal cdf function!?)
nrmcdf = @(x)((1 + erf(x / sqrt(2)))/2);
p_thry = 1 - nrmcdf(sqrt(k_vals) * log(5/4) / log(2));

loglog(k_vals,prob_g,'b-',k_vals,p_thry,'r-');
legend('empirical probability','theoretical probability');

生成的图表: 替代文字

你的期望是对的。

实际上,您对于获得超过原始股份的概率也有正确的答案,尽管不是正确的证明。考虑一下它的以 2 为底的对数,而不是您拥有的原始金额。事实证明,这是您将钱翻倍的次数,减去您将钱减半的次数。这是独立随机变量的总和,每个变量等于,概率为您想要的概率是这是正数的概率。如果是奇数,那么通过对称性它正好是如果是偶数(称之为),那么它是Snn+111/2n1/2n2k1/2概率的一半但是,它接近作为Sn=0P(S2k=0)=(2kk)/22k0k