Jest to nieco podobne do centrów trójkąta , ale z innym punktem. Fermat Punkt jest punktem P w trójkącie ABC takie, że wartość AP + BP + CP jest zminimalizowane. Istnieją dwa przypadki:
Jeśli kąt jest większy niż 120 stopni, ten wierzchołek jest punktem końcowym. W przeciwnym razie narysuj trójkąty równoboczne po każdej stronie ABC. Połącz najdalszy wierzchołek każdego trójkąta równobocznego z przeciwległym wierzchołkiem trójkąta ABC. Wykonanie tego dla każdego z trzech trójkątów równobocznych powoduje powstanie jednego wspólnego punktu przecięcia dla wszystkich trzech linii, którym jest Punkt Fermata.
Powinien działać w ciągu 5 sekund na rozsądnej maszynie.
Dane wejściowe : zestaw 3 punktów, niekoniecznie liczb całkowitych. Może to być traktowane jako zagnieżdżona tablica, łańcuch, lista krotek itp. (Cokolwiek pasuje do twojego języka).
Wyjście : ponownie współrzędne punktu Fermata, jednak twój język najlepiej obsługuje punkty. Niedokładności zmiennoprzecinkowe nie będą liczone przeciwko tobie.
Przypadki testowe :
[[1, 1], [2, 2], [1, 2]] --> [1.2113248654051871, 1.788675134594813]
[[-1, -1], [-2, -1], [0, 0]] --> [-1, -1]
[[-1, -1], [1, -1], [0, 1]] --> [0, -0.42264973081037427]
[[0, 0], [0.5, 0.8660254037844386], [-5, 0]] --> [0, 0]
[[0, 0], [0, -5], [-0.8660254037844386, 0.5]] --> [0, 0]
To jest golf golfowy, więc wygrywa najkrótszy kod!
-0.0
dane wyjściowe są zastępowane przez niektóre 0.0
s?