Các hình tròn và hình vuông có một điểm trung tâm duy nhất, xác định. Tuy nhiên, khái niệm trung tâm của một tam giác đã được thảo luận từ lâu. Bốn trung tâm khác nhau đã được người Hy Lạp cổ đại biết đến:
- Incenter : Giao điểm của các đường phân giác của tam giác
- Centroid : Giao điểm của các đường thẳng từ mỗi đỉnh của tam giác đến giữa cạnh đối diện của nó
- Circumcenter : Giao điểm của đường phân giác vuông góc của các cạnh
- Orthocenter : Giao điểm của độ cao của tam giác
Euler sau đó đã chứng minh rằng trung tâm, chu vi và orthocenter là cộng tuyến trong bất kỳ tam giác. Đường thẳng mà ba điểm này nằm trong một tam giác được gọi là Đường Euler . Nó được xác định cho mọi tam giác ngoại trừ một tam giác đều, trong đó tất cả các điểm trùng nhau.
Thách thức của bạn là tạo ra chương trình hoặc hàm ngắn nhất, khi được đưa ra hai đầu vào, xuất ra một trung tâm cụ thể hoặc Đường Euler của tam giác. Đầu tiên chỉ định tọa độ của mỗi đỉnh của một tam giác. Thứ hai là một số nguyên từ 1 đến 5, xác định những gì sẽ xuất.
1 - Incenter
2 - Centroid
3 - Circumcenter
4 - Orthocenter
5 - Equation of Euler Line
(if the Euler Line is vertical, output the `x` value of the line
(e.g. output `5` if the equation of the line is `x = 5`))
Bạn có thể giả sử rằng các đỉnh đã cho sẽ không bao giờ được cộng tuyến và chúng sẽ luôn là tọa độ nguyên (điều này cũng loại trừ khả năng có một tam giác đều làm đầu vào, theo nhận xét của @ R.Kap ).
Mảng đầu vào phải là một mảng lồng hợp lệ trong ngôn ngữ của bạn và đầu vào phải ở bất kỳ định dạng hợp lý nào. Bất kỳ giá trị float nào sẽ được hiển thị đến ít nhất 3 chữ số thập phân, nhưng không ít hơn. Một điểm xuất ra phải là một mảng hợp lệ trong ngôn ngữ của bạn, phù hợp với định dạng đầu vào.
Các trường hợp thử nghiệm:
Input: [(-2, 0), (1, 0), (0, 1)] 1
Output: (-0.089, 0.451)
Input: [(-2, 0), (1, 0), (0, 1)] 2
Output: (-0.333, 0.333)
Input: [(-2, 0), (1, 0), (0, 1)] 3
Output: (-0.5, -0.5)
Input: [(-2, 0), (1, 0), (0, 1)] 4
Output: (0, 2)
Input: [(-2, 0), (1, 0), (0, 1)] 5
Output: 5x + 2
Làm rõ: Đầu vào có thể từ stdin, khoảng cách hoặc dòng mới được phân tách hoặc làm đối số cho hàm. Đầu ra, tuy nhiên, phải được ghi vào thiết bị xuất chuẩn.
y=f(x)
.
(if the triangle is equilateral, output the point at which the centers meet)
vì không thể tạo ra một tam giác đều trên mặt phẳng tọa độ chỉ sử dụng tọa độ nguyên.