কম্পিউটার

পাইথনে চারটি প্যারামিটার সহ প্রদত্ত সমীকরণের জন্য সমাধানের সংখ্যা খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের চারটি সংখ্যা আছে a, b, c এবং d এবং আমাদের খুঁজে বের করতে হবে জোড়ার সংখ্যা (x, y) এমনভাবে পাওয়া যেতে পারে যা সমীকরণটি অনুসরণ করে:x^2 + y^2 =(x*a) + ( y*b) যেখানে x রেঞ্জে [1, c] এবং y রেঞ্জে [1, d]

সুতরাং, যদি ইনপুট হয় a =2 b =3 c =2 d =4, তাহলে আউটপুট হবে 1 কারণ এক জোড়া (1, 1)।

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

  • উত্তর :=0
  • 1 থেকে c রেঞ্জের x এর জন্য, করুন
    • l :=x*(x-a)
    • det2 :=b*b - 4*l
    • যদি det2 0 এর সমান হয় এবং b জোড় হয় এবং 1 <=(b/2) <=d এর ফ্লোর হয়, তাহলে
      • উত্তর :=উত্তর + ১
      • পরবর্তী পুনরাবৃত্তির জন্য যান
    • যদি det2> 0 হয়, তাহলে
      • det :=det2 এর বর্গমূলের পূর্ণসংখ্যা অংশ
      • যদি det^2 det2 এর সমান এবং (b+det) জোড় হয়, তাহলে
        • যদি 1 <=(b+det)/2 <=d হয়, তাহলে
          • উত্তর :=উত্তর + ১
        • যদি 1 <=(b-det)/2 <=d হয়, তাহলে
          • উত্তর :=উত্তর + ১
  • উত্তর ফেরত দিন

উদাহরণ

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

def solve(a, b, c, d):
   ans = 0
   for x in range(1,c+1):
      l = x*(x-a)

      det2 = b*b - 4*l
      if det2 == 0 and b%2 == 0 and 1 <= b//2 <= d:
         ans += 1
         continue
      if det2 > 0:
         det = int(round(det2**0.5))
         if det*det == det2 and (b+det) % 2 == 0:
            if 1 <= (b+det)//2 <= d:
               ans += 1
            if 1 <= (b-det)//2 <= d:
               ans += 1
   return ans

a = 2
b = 3
c = 2
d = 4
print(solve(a, b, c, d))

ইনপুট

2, 3, 2, 4

আউটপুট

1

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

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

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

  4. পাইথন প্রোগ্রামের জন্য কিভাবে একটি প্রদত্ত নম্বর একটি ফিবোনাচি নম্বর কিনা তা পরীক্ষা করবেন?