Лучшее, что можно сделать с подобными вопросами, - это попытаться получить небольшие результаты, которые помогут вам решить общую проблему.
Например, не сложно определить, что для любых трех пунктов,A, B и C, которые имеют условие, что B составляет между (подробнее об этом в секунду), A и C, B никогда не будут дальше от четвертой точки D, чем одна из A и C.стандартная евклидова метрика расстояния, точка находится между двумя другими точками, если она лежит на соединяющем их отрезке.Для манхэттенских измерений это не так просто - отчасти потому, что концепция сегмента не так хорошо понятна.
Более общий способ описания «между» заключается в следующем (используя обозначение, что расстояние от А до Вis | AB |): точка B находится между двумя точками A, C, если | AB |+ | BC |= | AC |
Вы можете видеть, что на евклидовом расстоянии это означает, что B лежит на отрезке, соединяющем A и C.
На манхэттенском расстоянии это означает, что точка B содержится впрямоугольник, определенный A и C (который, конечно, может быть прямым отрезком, если AC параллелен одной из осей).
Этот результат означает, что для любой точки, если она лежит между двумя существующими точками, она может бытьне дальше от каких-либо новых точек, добавленных к набору, кроме двух, которые его окружают.
Теперь эта информация не решает проблему для вас, но позволяет отбросить многие потенциальные будущие вычисления.Как только вы определили, что точка находится между двумя другими, нет смысла отслеживать ее.
Итак, вы можете решить эту проблему, отслеживая только самые крайние точки и игнорируя любые, попадающие в них.
Интересное упражнение для случайного наблюдателя
Докажите, что у вас может быть не более 4 разных точек, так что ни одна из точек не находится между двумя другими, вМанхэттенское чувство.
С этим вторым результатом становится ясно, что вам нужно будет отслеживать только 4 балла.
Некоторые из уже представленных методов, вероятно, быстрее,но этот способ веселее!
Дополнительный кредит
Обобщите эти идеи до n измерений