Koła i kwadraty mają jeden określony punkt środkowy. Jednak pojęcie środka trójkąta było długo dyskutowane. Starożytni Grecy znali cztery różne ośrodki:
- Incenter : Przecięcie bisectors kąta trójkąta
- Środek ciężkości : Przecięcie linii od każdego wierzchołka trójkąta do środka jego przeciwnej strony
- Circumcenter : Przecięcie prostopadłych dwusiecznych boków
- Ortocentrum : Przecięcie wysokości trójkąta
Później Euler udowodnił, że środek ciężkości, środek okręgu i ortocentrum są współliniowe w dowolnym trójkącie. Linia, na której te trzy punkty znajdują się w trójkącie, nazywa się linią Eulera . Jest on zdefiniowany dla każdego trójkąta oprócz trójkąta równobocznego, w którym wszystkie punkty pokrywają się.
Wyzwanie polega na stworzeniu najkrótszego programu lub funkcji, która przy dwóch wejściach generuje określone centrum lub linię Eulera trójkąta. Pierwszy określa współrzędne każdego wierzchołka trójkąta. Druga to liczba całkowita od 1 do 5, określająca, co wyprowadzić.
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`))
Możesz założyć, że podane wierzchołki nigdy nie będą współliniowe, i że zawsze będą to współrzędne całkowite (wyklucza to również możliwość wprowadzenia trójkąta równobocznego jako danych wejściowych, zgodnie z komentarzem @ R.Kapa ).
Tablica wejściowa powinna być prawidłową tablicą zagnieżdżoną w Twoim języku, a dane wejściowe powinny mieć dowolny rozsądny format. Wszelkie wartości zmiennoprzecinkowe powinny być wyświetlane z co najmniej 3 miejscami po przecinku, ale nie mniej. Punktem wyjściowym powinna być poprawna tablica w twoim języku, zgodna z formatem wejściowym.
Przypadki testowe:
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
Wyjaśnienie: Dane wejściowe mogą pochodzić ze standardowego wejścia, oddzielone spacją lub znakiem nowej linii lub jako argumenty funkcji. Dane wyjściowe należy jednak zapisać na standardowe wyjście.
y=f(x)
.
(if the triangle is equilateral, output the point at which the centers meet)
, ponieważ jest to nie możliwe, aby tworzyć trójkąt równoboczny na płaszczyźnie współrzędnych przy użyciu tylko całkowitą współrzędnych.