কম্পিউটার

পাইথনে ভারতীয় মূল্যবোধ ব্যবহার করে আমরা n R.s পেতে পারি এমন কয়েকটি উপায় খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের কাছে সীমিত মূল্যের মুদ্রা রয়েছে (₹1, ₹2, ₹5 এবং ₹10)। আমাদের খুঁজে বের করতে হবে কত উপায়ে আপনি তাদের মোট ₹n পর্যন্ত যোগ করতে পারেন? আমাদের কাছে আকার 4 এর একটি অ্যারে গণনা রয়েছে, যেখানে গণনা[0] ₹1 এর কয়েন নির্দেশ করে, গণনা[1] ₹2 এর কয়েন নির্দেশ করে।

সুতরাং, যদি ইনপুট n =25 কাউন্ট =[7,3,2,2] এর মত হয়, তাহলে আউটপুট হবে 9।

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

  • ডিনম :=[1,2,5,10]
  • A :=আকারের একটি অ্যারে (n + 1) এবং 0 দিয়ে পূরণ করুন
  • B :=A থেকে একটি নতুন তালিকা
  • 0 থেকে (সর্বনিম্ন গণনা [0] এবং n) রেঞ্জের জন্য, কর
    • A[i] :=1
  • আমি 1 থেকে 3 রেঞ্জের জন্য, কর
      গণনা করার জন্য 0 রেঞ্জের j-এর জন্য [i], করুন
      • 0 থেকে n + 1 - j *ডেনম[i] রেঞ্জের k-এর জন্য, করুন
        • B[k + j * denom[i]] :=B[k + j * denom[i]] + A[k]
      0 থেকে n রেঞ্জে j-এর জন্য
    • করুন
      • A[j] :=B[j]
      • B[j] :=0
  • প্রত্যাবর্তন A[n]

উদাহরণ

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

denom = [1,2,5,10]
def solve(n, count):
   A = [0] * (n + 1)
   B = list(A)
   for i in range(min(count[0], n) + 1):
      A[i] = 1
   for i in range(1, 4):
      for j in range(0, count[i] + 1):
         for k in range(n + 1 - j *denom[i]):
            B[k + j * denom[i]] += A[k]
      for j in range(0, n + 1):
         A[j] = B[j]
         B[j] = 0
   return A[n]

n = 25
count = [7,3,2,2]
print(solve(n, count))

ইনপুট

25, [7,3,2,2]

আউটপুট

9

  1. পাইথনের সিঁড়ি ব্যবহার করে আমরা পরের তলায় পৌঁছাতে পারি এমন সংখ্যক উপায় খুঁজে বের করার প্রোগ্রাম

  2. পাইথনে Ajob সিকোয়েন্স থেকে আমরা সিকোয়েন্স সিলেক্ট করতে পারি এমন সংখ্যক উপায় খুঁজে বের করার প্রোগ্রাম

  3. পাইথনে n স্বতন্ত্র নোড ব্যবহার করে সম্ভাব্য BST গুলির সংখ্যা খুঁজে বের করার প্রোগ্রাম তৈরি করা যেতে পারে

  4. পাইথনে আমরা সর্বাধিক সংখ্যক কয়েন সংগ্রহ করতে পারি তা খুঁজে বের করার প্রোগ্রাম