求期望

  数学 概率论 随机过程    浏览次数:2957        分享
3

设$X_0=1$,$X_1$服从$[0, X_0]$的均匀分布,$X_2$服从$[0, X_1]$的均匀分布,如此类推,$X_i$服从$[0, X_{i-1}]$的均匀分布。那么给定常数$a$,满足$X_n \lt a \lt X_{n-1}$,请问$n$的期望是多少?

 

AlloAllo   2019-07-25 15:23



   2个回答 
7

1. 从$x_1$到$x_2$

$x_1$概率密度函数pdf $f_{x_1}=1$

条件pdf $f_{x_2|x_1}=\frac{1}{x_1}$

联合pdf $f_{x_2,x_1}=\frac{1}{x_1}*1=\frac{1}{x_1}$

$x_2$ pdf $f_{x_2}=\int_{x_2}^{1}\frac{1}{x_1}dx_1=-ln(x_2)$

2. 从$x_2$到$x_3$

条件pdf $f_{x_3|x_2}=\frac{1}{x_2}$

联合pdf $f_{x_3,x_2}=\frac{1}{x_2}*-ln(x_2)$

$x_3$ pdf $f_{x_3}=\int_{x_3}^{1}\frac{1}{x_2}*-ln(x_2)dx_2=\frac{ln^2(x_3)}{2}$

同理可得$f_{x_4,x_3}=\frac{ln^2(x_3)}{2x_3}$

推理得$f_{x_{n+1},x_n}=\frac{ln^{n-1}(1/x_{n})}{(n-1)!x_{n}}$

只有满足条件$x_{n+1}<a<x_{n}$时才考虑$n$,此时的概率是联合pdf在$0<x_{n+1}<a$和$a<x_n<1$上的积分

$\int_0^a\int_a^1f_{x_{n+1},x_n}dx_ndx_{n+1}$

根据均值定义

$\sum_{n=1}^{\inf}n*\int_0^a\int_a^1f_{x_{n+1},x_n}dx_ndx_{n+1}+1$

$=\sum_{n=1}^{\inf}\int_0^a\int_a^1\frac{nln^{n-1}(1/x_{n})}{(n-1)!x_{n}}dx_ndx_{n+1}+1$

$=\sum_{n=1}^{\inf}\frac{naln^n(1/a)}{n!}+1$

最后一步化简暂时没做出,用实验验证应该没错。


import numpy as np
import matplotlib.pyplot as plt
def GetN(a):
    result = 1
    n=10000
    for i in range(n):
        t=0
        x = np.random.uniform(0., 1.)
        while a < x:
            x=np.random.uniform(0., x)
            t+=1
        result += (t*1. / n)
    return result

def GetN_my(a):
    result=1.
    n=20
    ln_a=np.log(1/a)
    for i in range(1,n):
        temp=i*a*np.power(ln_a,i)/np.math.factorial(i)
        result+=temp
    return result

a = np.linspace(0.02, 0.98, 40)
expN = [GetN(i) for i in a]
expN_my = [GetN_my(i) for i in a]

plt.plot(a,expN,'-o',label='Sim')
plt.plot(a,expN_my,'-*',label='My')
plt.legend()
plt.show()


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

Zealing   2019-09-22 05:57

2

没有什么思路,只能解一个简单的情况,假如$X$不是随机的,是固定的在每个区间的中间,$X_1=2^{-1}, X_2=2^{-2}, X_n=2^{-n}$,那么对于给定的$a$,$n$的值也是可以确定的,等于

$$\lfloor 1-\log_2^a\rfloor$$

但问题就是这里的$X$都是随机的,所以我就只能用代码试试了

def GetN(a):
    result = 0
    for i in range(100000):
        x = [1]
        while a < x[-1]:
            x.append(np.random.uniform(0, x[-1]))
        result += ((len(x) - 1) / 100000)
    return result
a = np.linspace(0.02, 0.98, 49)
expN = [GetN(i) for i in a]

下图横轴是$a$,纵轴是$n$。蓝色的线是模拟的结果,绿色是按照固定X计算的结果。感觉差不了太多。


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

我小宋   2019-09-10 09:55



  相关讨论

伯努利过程和泊松过程

概率论中的鞅是什么?

一个关于病毒分裂的概率题

已知概率转移矩阵,怎么求平稳概率分布?

除了均值和方差,还有什么数值可以描述一个随机过程的特征?

抛的硬币直到连续出现两次正面为止,平均要扔多少次

布朗桥brownian bridge是什么?

如何通俗地解释中餐馆过程(Chinese restaurant process)?

贝叶斯网络中的markov blanket是什么意思?

证明马尔可夫不等式

  随便看看

激活函数RELU在0点的导数是多少?

怎么对2维的numpy array取整?

Pandas怎样对dataframe中的一个时间列进行排序?

抛的硬币直到连续出现两次正面为止,平均要扔多少次

怎么理解tweedie分布?