Это известно как «Центр расстояния» и отличается от центра тяжести.
Во-первых, вы должны определить, какую меру расстояния вы используете. Если предположить, что вы используете стандартную метрику d = sqrt ((x1-x2)^2 + (y1-y2)^2), то она не является единственной, и проблема сводит к минимуму эту сумму.
Самый простой пример, чтобы показать этот ответ, не является уникальным примером прямой линии. Любая точка между двумя точками имеет равное полное расстояние от всех точек.
В 1D правильным ответом будет любой ответ с таким же количеством точек справа и слева. Пока это верно, тогда любое перемещение влево и вправо будет увеличиваться и уменьшать левую и правую стороны на одну и ту же величину и, таким образом, оставлять расстояние одинаковым. Это также доказывает, что центроид не обязательно правильный ответ.
Если мы перейдем к 2D, это уже не так, поскольку sqrt делает проблему взвешенной. Удивительно, но, похоже, не стандартный алгоритм! На странице here, похоже, используется метод грубой силы. Я этого никогда не знал!
Если бы я хотел использовать алгоритм, то я бы нашел медианную точку в X и Y в качестве начальной точки, а затем использовал gradient descent algorithm - это получило бы ответ довольно быстро. Все уравнение заканчивается квадратичным, поэтому кажется, что должно быть точное решение.
Не закрывайте это, алгоритмы геометрии полностью в пределах переполнения стека –
ли это домашнее задание? Кроме того, на каком языке вы пытаетесь это реализовать? – Piskvor
Нет, это не домашнее задание. Я изучаю алгоритмы вычислительной геометрии. Так что получил сомнение. Я делаю это в C. – nowonder