Это несколько похоже на центры треугольника , но с другой точкой. Точка Ферма - это точка P в треугольнике ABC, так что значение AP + BP + CP минимизировано. Есть два случая:
Если угол больше 120 градусов, эта вершина является точкой ферма. В противном случае нарисуйте равносторонние треугольники на каждой из сторон ABC. Соедините дальнюю вершину каждого равностороннего треугольника с противоположной вершиной треугольника ABC. Выполнение этого для каждого из трех равносторонних треугольников приводит к единой общей точке пересечения для всех трех линий, которая является точкой Ферма.
Он должен работать в течение 5 секунд на разумной машине.
Ввод : набор из 3 точек, не обязательно целых чисел. Это может быть воспринято как вложенный массив, строка, список кортежей и т. Д. (Все, что подходит вашему языку).
Вывод : опять же, координаты точки Ферма, однако ваш язык лучше всего обрабатывает точки. Неточности с плавающей точкой не будут засчитаны против вас.
Тестовые случаи :
[[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]
Это кодовый гольф, поэтому выигрывает самый короткий код!
-0.0
вывод вместо некоторых 0.0
s?