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