কম্পিউটার টিউটোরিয়াল

পাইথনে র‍্যান্ডম নম্বর থেকে আশাবেদী মান (Expected Value) বের করার প্রোগ্রাম

একটি সংখ্যা n দেওয়া আছে। x = rand() mod n যেখানে rand() ০ থেকে ১০¹⁰⁰ পর্যন্ত একইভাবে র‍্যান্ডম ইন্টিজার জেনারেট করে।

Y = √(x + √(x + √(x + ...))) — এই Y-এর আশাবেদী মান বের করুন। n এর রেঞ্জ: ১ থেকে ৫×১০⁶।

উদাহরণ

n = 5 → আউটপুট: 1.69647248786

এলগরিদম

  1. প্রি-কম্পিউটেড প্রিফিক্স সাম pref ব্যবহার করুন (৫×১০⁶ পর্যন্ত)।
  2. pref[i] = pref[i-1] + 0.5*(1 + √(4i+1))
  3. যদি n < 5×10⁶: রিটার্ন pref[n-1]/n
  4. অন্যথায় অ্যাসিম্পটোটিক ফর্মুলা ব্যবহার করুন।

পাইথন কোড

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))  # আউটপুট: 1.69647248786

ইনপুট / আউটপুট

5
1.69647248786
  1. পাইথনে সমীকরণ a + b = c থেকে অনুপস্থিত মান বের করুন

  2. পাইথনে ফিবোনাচ্চি সংখ্যা প্রোগ্রাম

  3. পাইথনে কমপ্লেক্স নাম্বার: কমপ্লেক্স সংখ্যা নিয়ে কাজ করার সম্পূর্ণ গাইড

  4. পাইথন প্রোগ্রাম: মডুলার এক্সপোনেনশিয়েশন (Modular Exponentiation)