我遇到了一个问题如下
假设一个系列包括从 1 到 N 的整数。每次采样一个整数而不从系列中替换。该过程继续,如果>=, 和将被保存到另一个系列. 这个过程不会停止,直到<.
然后它询问预期长度.
下面我尝试在 Python 中模拟输出
import numpy as np
def gen():
'''
return length of X_s
'''
N = 10000
raw_data = list(np.arange(N)) #1,2,3,...,N
X_s = []
last_value = - float('inf')
for _ in range(N):
cur_value = np.random.choice(raw_data)
raw_data.pop(cur_value)
if cur_value >= last_value:
last_value = cur_value
X_s.append(last_value)
else:
break
return len(X_s)
a = [gen() for _ in range(1000)] # simulate 1000 times
np.mean(a)
结果在1.6~1.7左右。我正在寻找预期长度的封闭形式解决方案,有什么想法吗?