重学积分和期望吧
从群友那里看到的。
不断 random.uniform(0,1)
直到生成过的数总和大于 \(1\),问调用次数的期望。令 \(f(x)\) 为总和超过 \(x\) 的期望步数,其中 \(x\leq 1\).
枚举上一个数的大小,那么就有 \(f(x)=1+\int_0^xf(t)\mathrm{d}t\).
注记:这里的期望 dp 和正常的不一样,是顺推的,值得思考一下细节,为什么不除掉 \(x\).
两边求导 \(f(x)=f'(x)\),则 \(f(x)=ce^x\),回带到原式中得到 \(c=1\),那么即得 \(f(1)=e\).
\(\int_0^xce^t\mathrm{d}t=ce^x-c\)