У меня есть вопрос,
Учитывая набор точек, как разместить точку с условием, что расстояние до самой дальней точки должно быть как можно меньше?
Это относится к этой проблеме. Я не знаю, как поступить. Кто-нибудь подскажет?
Спасибо
У меня есть вопрос,
Учитывая набор точек, как разместить точку с условием, что расстояние до самой дальней точки должно быть как можно меньше?
Это относится к этой проблеме. Я не знаю, как поступить. Кто-нибудь подскажет?
Спасибо
Проверьте эту страницу. В нем описано несколько способов сделать это. http://www.personal.kent.edu/~rmuhamma/Compgeometry/MyCG/CG-Applets/Center/centercli.htm
На случай, если ссылка выше когда-нибудь исчезнет, вот соответствующая часть, описывающая самый простой метод:
Алгоритм времени O(n2)
На этом этапе мы создаем окружность C, которая проходит через две или более точек заданного множества. Если окружность содержит интервал (интервал без точек) дуги, превышающий половину окружности окружности, на которой нет точек, окружность можно уменьшить. Пусть D и E — точки на концах этого бесточечного интервала. Удерживая D и E на границе круга, уменьшайте диаметр круга, пока не будет либо случай (a), либо случай (b).
Another page here, with a sample applet: http://www.sunshine2k.de/stuff/Java/Welzl/Welzl.html
Вам нужно использовать диаграмму Вороного, возможно, диаграмму Вороного в самой дальней точке, где плоскость разделена на регионы, где точки в одном регионе имеют одну и ту же самую дальнюю точку
Обновить
Сначала вам нужно построить диаграмму Вороного с самой дальней точкой, которая занимает время O(nlogn), и найти центр наименьшего круга среди всех вершин (если круг определяется тремя точками) и всех ребер (если круг определяется двумя точками). Общая временная сложность этого подхода составляет O(nlogn).
Я только что видел вики-страницу Задача о наименьшем круге, похоже, там есть O(n ) временной алгоритм. Вы можете проверить это, если вам небезразлична скорость, иначе не имеет значения.
smallest circle
даст довольно приличное начало. - person Jerry Coffin   schedule 03.07.2012