首页 文章资讯内容详情

在Python中找到随机数给定方程的期望值的程序

2026-06-03 1 花语

假设我们有一个数字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