Giả sử chúng ta có một số n. Hãy xem xét x =rand () mod n, trong đó hàm rand () tạo ra các số nguyên từ 0 đến 10 ^ 100 (cả hai) một cách ngẫu nhiên đồng nhất. Và
$$ Y =\ sqrt {x + \ sqrt {x + \ sqrt {x + \ sqrt {x + ...}}}} $$
Chúng ta phải tìm giá trị mong đợi của Y. Giá trị của n sẽ nằm trong khoảng 1 và 5 * 10 ^ 6.
Vì vậy, nếu đầu vào là n =5, thì đầu ra sẽ là 1,696
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- err:=2235.023971557617
- max_n:=5 * 10 ^ 6
- pref:=một danh sách ban đầu chứa một 0
- đối với tôi trong phạm vi từ 1 đến 5 * 10 ^ 6, hãy thực hiện
- chèn (mục cuối cùng của pref + (1 + (4 * i + 1) ^ 0,5) * 0,5 vào cuối pref
- nếu n
- trả về pref [n - 1] / n
- tổng:=(4 * (n - 1) + 5) ^ 1.5 / 6 - 5 ^ 1.5 / 6 - err
- ans:=0,5 + tổng / (2 * n)
- trả lại ans
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
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))
Đầu vào
5
Đầu ra
1.69647248786