কম্পিউটার

পাইথনে কার্যকর উপায়ে 0 থেকে n রেঞ্জের মধ্যে r-এর জন্য nCr মান খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের অনেকবার nCr মান গণনা করতে হবে। আমরা এই খুব কার্যকর উপায় সমাধান করতে পারেন. যদি আমরা nCr-এর নিম্ন মানগুলি সংরক্ষণ করি তবে আমরা সহজেই উচ্চ মানগুলি খুঁজে পেতে পারি। তাই যদি আমাদের n থাকে, তাহলে আমাদের nC0 থেকে nCn-এর তালিকা খুঁজে বের করতে হবে। যদি উত্তরটি খুব বড় হয় তবে সেই মডিউলটি 10^9 ফেরত দিন।

সুতরাং, যদি ইনপুট n =6 এর মত হয়, তাহলে আউটপুট হবে [1, 6, 15, 20, 15, 6, 1]।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • আইটেম :=একক উপাদান 1 সহ একটি তালিকা
  • 1 থেকে n রেঞ্জের মধ্যে r-এর জন্য,
      করুন
    • আইটেমের শেষে (আইটেমের শেষ উপাদান * (n-r+1) /r) এর মেঝে ঢোকান
    • আইটেম[n-2] :=আইটেম[n-2] মোড 10^9 যেখানে n আইটেমের আকার হয়
  • আইটেম ফেরত দিন

উদাহরণ

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

def solve(n):
   items = [1]
   for r in range(1,n+1):
      items.append(items[-1]*(n-r+1)//r)
      items[-2] %= 10**9
   return items

n = 6
print(solve(n))

ইনপুট

6

আউটপুট

[1, 6, 15, 20, 15, 6, 1]

  1. একটি সংখ্যার জোড় গুণকের যোগফল খুঁজে বের করার জন্য পাইথন প্রোগ্রাম

  2. n দ্বারা বিভক্ত অ্যারে গুণের অনুস্মারক সন্ধানের জন্য পাইথন প্রোগ্রাম

  3. একটি সংখ্যার বৃহত্তম মৌলিক ফ্যাক্টর খুঁজে বের করার জন্য পাইথন প্রোগ্রাম

  4. একটি সিলিন্ডারের পরিধি খুঁজে বের করার জন্য পাইথন প্রোগ্রাম