Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình tìm số nghiệm cho phương trình đã cho với bốn tham số bằng Python

Giả sử chúng ta có bốn số a, b, c và d và Chúng ta phải tìm số cặp (x, y) có thể tìm được sao cho có phương trình:x ^ 2 + y ^ 2 =(x * a) + ( y * b) trong đó x trong phạm vi [1, c] và y trong phạm vi [1, d]

Vì vậy, nếu đầu vào là a =2 b =3 c =2 d =4, thì đầu ra sẽ là 1 vì một cặp là (1, 1).

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • ans:=0
  • đối với x trong phạm vi từ 1 đến c, thực hiện
    • l:=x * (x-a)
    • det2:=b * b - 4 * l
    • nếu det2 giống 0 và b là chẵn và 1 <=tầng của (b / 2) <=d, thì
      • ans:=ans + 1
      • chuyển sang lần lặp tiếp theo
    • nếu det2> 0, thì
      • det:=phần nguyên của căn bậc hai của det2
      • nếu det ^ 2 giống với det2 và (b + det) là chẵn, thì
        • nếu 1 <=tầng của (b + det) / 2 <=d, thì
          • ans:=ans + 1
        • nếu 1 <=tầng của (b-det) / 2 <=d, thì
          • ans:=ans + 1
  • trả lại ans

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

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))

Đầu vào

2, 3, 2, 4

Đầu ra

1