更好的阅读体验
problems
Let y 0 , y 1 , y 2 y_0, y_1, y_2 y0,y1,y2,… be a sequence of random unsigned 32 32 32 bit integers
(i.e. 0 ≤ y i < 2 32 0 \le y_i \lt 2^{32} 0≤yi<232, every value equally likely).
For the sequence xi the following recursion is given:
- x 0 = 0 x_0 = 0 x0=0 and
- x i = x i − 1 x_i = x_{i-1} xi=xi−1 | $ y_{i-1}$, for i > 0 i > 0 i>0. (| is the bitwise-OR operator)
It can be seen that eventually there will be an index N such that x i = 2 32 − 1 x_i = 2^{32} -1 xi=232−1 (a bit-pattern of all ones) for all i ≥ N i \ge N i≥N.
Find the expected value of N N N.
Give your answer rounded to 10 10 10 digits after the decimal point.
translation
一共有 32 32 32 枚硬币,抛出去之后挑出其中为反面的再抛,问你期望多少次能让所有的硬币都是正面。
solution
我们定义 E ( n ) E(n) E(n) 表示,当有 n n n 枚硬币的时候,抛的次数的期望。问题转化为求 E ( 32 ) E(32) E(32) 。显然我们有 E ( 0 ) = 0 E(0) = 0 E(0)=0
我们先简化问题,看看 1 1 1 枚硬币的时候,我们是怎么统计答案的。也即如何计算 E ( 1 ) E(1) E(1)