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

โปรแกรมตรวจสอบรายการจุดเป็นเส้นตรงหรือไม่ในPython


สมมติว่าเรามีรายการพิกัดในระนาบคาร์ทีเซียน เราต้องตรวจสอบว่าพิกัดนั้นเป็นส่วนที่เป็นเส้นตรงหรือไม่

ดังนั้น หากอินพุตเป็นเหมือนพิกัด =[(5, 5),(8, 8),(9, 9)] ผลลัพธ์จะเป็น True เนื่องจากจุดเหล่านี้สร้างส่วนของเส้นตรงที่มีความชัน 1

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

  • (x0, y0) :=พิกัด[0]
  • (x1, y1) :=พิกัด[1]
  • สำหรับ i ในช่วง 2 ถึงขนาดของรายการพิกัด - 1 ทำ
    • (x, y) :=พิกัด[i]
    • ถ้า (x0 - x1) * (y1 - y) ไม่เหมือนกับ (x1 - x) * (y0 - y1) แล้ว
      • คืนค่าเท็จ
  • คืนค่า True

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

ตัวอย่าง

class Solution:
   def solve(self, coordinates):
      (x0, y0), (x1, y1) = coordinates[0], coordinates[1]
      for i in range(2, len(coordinates)):
         x, y = coordinates[i]
         if (x0 - x1) * (y1 - y) != (x1 - x) * (y0 - y1):
            return False
      return True
ob = Solution()
coordinates = [[5, 5],[8, 8],[9, 9]]
print(ob.solve(coordinates))

อินพุต

[[5, 5],[8, 8],[9, 9]]

ผลลัพธ์

True