Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมหาจำนวนพิกัดเชิงปริพันธ์บนเส้นตรงระหว่างจุดสองจุดในPython


สมมติว่าเราได้รับสองจุด (p1, q1) และ (p2, q2) เราต้องหาจำนวนของพิกัดเชิงปริพันธ์ (ทั้งค่า x และ y เป็นจำนวนเต็ม) หากมีการลากเส้นตรงระหว่างจุดสองจุดที่กำหนด คืนจำนวนแต้มแล้ว

ดังนั้น หากอินพุตเป็น p1 =3, q1 =3, p2 =6, q2 =6 แล้วผลลัพธ์จะเป็น 2 หากเราลากเส้นตรง เราจะเห็นว่าจุด (5,5) และ (6 ,6) อยู่บนเส้นตรง

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • กำหนดฟังก์ชัน gcd_find() นี่จะใช้เวลา x,y
    • ถ้า y เท่ากับ 0 แล้ว
      • ผลตอบแทน x
    • ส่งคืน gcd_find(y, x mod y)

จากวิธีการ/ฟังก์ชันหลัก ให้ทำดังนี้ −

  • ส่งคืน gcd_find(|p2 - p1| , |q2 - q1|) - 1

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

def gcd_find(x,y):
   if y == 0:
      return x
   return gcd_find(y,x % y)

def solve(p1,q1,p2,q2):
   return gcd_find(abs(p2 - p1),abs(q2 - q1)) - 1

print(solve(3,3,6,6))

อินพุต

3,3,6,6

ผลลัพธ์

2