IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> геометрическая задачка, минимальный круг
Bard
сообщение 30.12.2008 15:09
Сообщение #1


Учиться, учиться еще раз учиться
***

Группа: Пользователи
Сообщений: 158
Пол: Мужской
Реальное имя: Яшар

Репутация: -  3  +


Всем привет. У меня ту одна задачка по геометрии которую я очень хочу решить. Надеюсь на вашу помощь... Значит так. Задано число N(<=100) и N точек на координатной плоскости. Точки не лежат на координате (0,0) и по модулю не превышают 1000. Нужно найти координаты центра и радиус круга окружность которого соприкасалась бы как мин. с одной точкой и окружала бы все остальные точки.

пример:
6
1 1
1 5
3 6
5 3
9 5
5 9

ответ:
5 4
5

У кого какие идеи?


--------------------
Чтобы поразить цель важна не точность, а смелость
Шарль Луи Монтескё
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
xds
сообщение 30.12.2008 18:32
Сообщение #2


N337
****

Группа: Пользователи
Сообщений: 737
Пол: Мужской

Репутация: -  26  +


1) перебором построить выпуклый многоугольник, с вершинами в точках из заданного множества, такой, что все точки множества лежат внутри него (включая стороны); эксплуатируется уравнение прямой;
2) отрезок максимальной длины, построенный на вершинах многоугольника - диаметр искомой окружности.


--------------------
The idiots are winning.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 31.12.2008 5:13
Сообщение #3


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(xds @ 30.12.2008 18:32) *
1) перебором построить выпуклый многоугольник, с вершинами в точках из заданного множества, такой, что все точки множества лежат внутри него (включая стороны); эксплуатируется уравнение прямой;
2) отрезок максимальной длины, построенный на вершинах многоугольника - диаметр искомой окружности.

Боюсь, так не выйдет.. Контрпример - три точки в вершинах равностороннего треугольника.

Условие несколько хитрое.. В нем ничего не говорится про минимальность окружности. Если минимальность не нужна, то все просто. Например, можно найти Xmin, Xmax, Ymin и Ymax. Тогда прямоугольник с этими координатами будет вмещать все множество. Построим описанную окружность, а затем [далее неверно, см. ниже] сместим ее так, чтобы она проходила через, например, крайнюю точку по Х. Если таких точек несколько - то через две, имеющие минимальную и максимальную координату Y. [далее снова верно]

Если добавить минимальность, то будет сложнее. Ключевое соображение такое: минимальная окружность должна проходить через три точки. Можно перебрать все тройки точек и построить на них описанные окружности, но соображение, что искомая будет иметь максимальный радиус из них - абсоютно неверно. Правильно будет искать расстояния от всех точек до центра построенной окружности и сравнивать его с радиусом оной. Если все такие расстояния меньше либо равны радиусу - окружность годится. Но из всех годящихся еще нужно выбрать минимальную..
Вот так smile.gif.

Bard, уточни про минимальность, плз.

PS
Тебе правда нужна такая программа на Паскале как итог этой темы, или мне перенести тему в Алгоритмы?

Сообщение отредактировано: Lapp - 31.12.2008 8:42


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.07.2025 14:25
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"