平均要取多少个(0,1)中的随机数才能让和超过1

更新:答案有误,因为答案只证明了当\(n \to \inf\)时,从\(1/n, 2/n, \dots, (n-1)/n\)中平均要取\(e\)个数才能让和超过一,而当\(n \to \inf\)时,\(1/n, 2/n, \dots, (n-1)/n\)并不能和\((0, 1)\)中的实数一一对应。写这个日志的时候才上高中,不知知道可数集不可数集的概念。而且即使把题目改为取有理数,我给出的答案也是不对了。献丑了,哈哈哈。

题目来自Matrix67.com,原文链接http://www.matrix67.com/blog/archives/3507

Matrix67牛给出了一个用微积分做的解答,当我看到这个题目的时候,我想到了另一个方法。

思考时间,答案在下面(字体是白色的)。

首先,将题目转化为平均要取多少个1到n-1中的随机数才能让和超过n。显然当n趋于无穷大时,这两个问题是等效的。

然后,解:

设f(x)表示平均取多少次才能大于x.
显然 f(x)=0 x<0
     f(x)=1 x=0
对于x>0来说,设之前最后一次取得了i,那么i在1到n-1之间,且取到任意一个数的概率为1/(n-1).
所以 f(x)=sum{(1+f(x-i))/(n-1):1<=i<=n-1}
         =1+sum{f(x-i):1<=i<=n-1}/(n-1)
         =1+sum{f(t):0<=t<=x-1}/(n-1) (如果0<x<n)
         =1+sum{f(t):x-(n-1)<=t<=x-1}/(n-1) (如果x>=n)

对于0<x<n
    令 F(x)=sum{f(i):0<=i<=x}
    则 f(x)=1+F(x-1)/(n-1)     ......[1]
    所以 f(x-1)=1+F(x-2)/(n-1) ......[2]
    [1]式-[2]式得 f(x)-f(x-1)=(F(x-1)-F(x-2))/(n-1)
    所以 (f(x)-f(x-1))*(n-1)=f(x-1)
    所以 f(x)=f(x-1)*n/(n-1)
             =(n/(n-1))^x*f(0)
             =(n/(n-1))^x
所以 f(n)=1+sum{f(t):1<=t<=n-1}/(n-1)
         =1+sum{(n/(n-1))^t:1<=t<=n-1}/(n-1)
         =1+(n/(n-1))^n-n/(n-1)
         =(n/(n-1))^n-1/(n-1)

     lim(n->+oo) f(n)=(1+1/(n-1))^(n-1)*(1+1/(n-1))-1/(n-1)
                     =e*1-0
                     =e