在Python中找到随机数给定方程的期望值的程序
假设我们有一个数字n。考虑x=rand()modn,其中rand()函数随机均匀地生成0到10^100(包括两者)之间的整数。和
$$Y=\sqrt{x+\sqrt{x+\sqrt{x+\sqrt{x+...}}}}$$
我们必须找到Y的期望值。n的值将在1和5*10^6的范围内。
所以,如果输入像n=5,那么输出将是1.696
示例
让我们看看以下实现以获得更好的理解-
def solve(n):
err = 2235.023971557617
max_n = 5 * 10**6
pref = [0]
for i in range(1, 5 * 10**6):
pref.append(pref[-1] + (1 + (4 * i + 1)**0.5) * 0.5)
if n < max_n:
return pref[n - 1] / n
else:
total = (4 * (n - 1) + 5)**1.5 / 6 - 5**1.5 / 6 - err
ans = 0.5 + total / (2 * n)
return ans
n = 5
print(solve(n))输入
5输出结果
1.69647248786
热门推荐
10 新人红包祝福语简短精辟
11 幼师给毕业祝福语简短
12 生日高考祝福语妹妹简短
13 下飞机祝福语简短英文
14 元宵发客户祝福语简短
15 爸妈金婚文案祝福语简短
16 新郎朋友红包祝福语简短
17 虎年五一祝福语大全简短
18 出阁宴祝福语姐姐简短