Bằng cách nào đó ta thu được một số điểm vấn đề đặt ra là cần phải kiểm tra xem các điểm có là đường thẳng hay không
Bài toán:
Cho n điểm (xi; yi) i = 1, n và ngưỡng θ hãy kiểm tra n điểm có tạo thành đường thẳng hay không?
* Ý tưởng
Giả sử n điểm nằm trên cùng một đường thẳng và đường thẳng có phương trình
y = ax + b
Vì (xi, yi) i = 1, n thuộc đường thẳng nên y1 = ax1 + b, ∀i = 1, n
⇔ b = - xia + y1; ∀i = 1, n
Như vậy, mỗi điểm (xi; yi) trong mặt phẳng sẽ tương ứng với một số đường thẳng b = - xia + yi trong mặt phẳng tham số a, b. n điểm (xi; yi) i = 1, n thuộc đường thẳng trong mặt phẳng tương ứng với n đường thẳng trong mặt phẳng tham số a, b giao nhau tại 1 điểm và điểm giao chính là a, b. Chính là hệ số xác định phương trình của đường thẳng mà các điểm nằm vào.
* Phương pháp:
- Xây dựng mảng chỉ số [a, b] và gán giá trị 0 ban đầu cho tất cả các phân tử của mảng
- Với mỗi (xi; yi) và ∀a, b là chỉ số của phần tử mảng thoả mãn b = - xia + yi tăng giá trị của phân tử mảng tương ứng lên 1
- Tìm phần tử mảng có giá trị lớn nhất nếu giá trị lớn nhất tìm được so với số phân tử lớn hơn hoặc bằng ngưìng θ cho trước thì ta có thể kết luận các điểm nằm trên cùng 1 đường thẳng và đường thẳng có phương trình y = ax + b trong đó a, b tương ứng là chỉ số của phần tử mảng có giá trị lớn nhất tìm được:
Ví dụ:
Cho 5 điểm (0, 1); (1, 3); (2, 5); (3, 5); (4, 9) và θ = 80%. Hãy kiểm tra xem 5 điểm đã cho có nằm trên cùng một đường thẳng hay không? Hãy cho biết phương trình đường thẳng nếu có?
- Lập bảng chỉ số[a, b] và gán giá trị 0 + (0, 1): b = 1 + (1, 3): b = -a + 3 + (2, 5): b = -2a + 5 + (3, 5): b = -3a + 5 + (4, 9): b = -4a + 9 - Tìm phần tử lớn nhất có giá trị 4 4/5 = 80%
- Kết luận: 5 điểm này nằm trên cùng 1 đường thẳng Phương trình: y = 2x + 1