ধরুন আমাদের একটি সংখ্যা n আছে। x =rand() mod n বিবেচনা করুন, যেখানে rand() ফাংশন 0 এবং 10^100 (উভয়ই অন্তর্ভুক্ত) মধ্যে পূর্ণসংখ্যা তৈরি করে এলোমেলোভাবে। এবং
$$Y =\sqrt{x+\sqrt{x+\sqrt{x+\sqrt{x+...}}}$$
আমাদের Y-এর প্রত্যাশিত মান খুঁজে বের করতে হবে। n-এর মান হবে 1 এবং 5*10^6 পরিসরে।
সুতরাং, যদি ইনপুট n =5 এর মত হয়, তাহলে আউটপুট হবে 1.696
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- ভ্রান্তি :=2235.023971557617
- max_n :=5 * 10^6
- pref :=একটি তালিকায় প্রাথমিকভাবে একটি একক 0 থাকে
- আমি 1 থেকে 5 * 10^6 রেঞ্জের জন্য, কর
- প্রিফার শেষে সন্নিবেশ করান (প্রেফ + (1 +(4*i + 1)^0.5) * 0.5 এর শেষ আইটেম
- যদি n
- রিটার্ন pref[n - 1] / n
- মোট :=(4 *(n - 1) + 5)^1.5 / 6 - 5^1.5 / 6 - ত্রুটি
- উত্তর :=0.5 + মোট /(2 * 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))
ইনপুট
5
আউটপুট
1.69647248786