Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình kiểm tra danh sách điểm có tạo thành đường thẳng hay không trong Python

Mô tả bài toán

Cho danh sách tọa độ điểm trong mặt phẳng Descartes. Kiểm tra xem các điểm có nằm trên một đường thẳng hay không.

Ví dụ: coordinates = [(5,5),(8,8),(9,9)] → True (độ dốc 1).

Giải thuật (Kiểm tra độ dốc)

  1. Lấy hai điểm đầu (x0,y0), (x1,y1).
  2. Với mỗi điểm (x,y) từ chỉ số 2: kiểm tra (x0 - x1)*(y1 - y) == (x1 - x)*(y0 - y1) (tránh chia cho 0).
  3. Nếu bất kỳ điểm nào không thỏa mãn: trả về False.
  4. Trả về True.

Ví dụ mã Python

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

Đầu vào

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

Đầu ra

True