Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 3 307

/ вопрос открыт /

Здравствуйте, уважаемые эксперты!
Я тут столкнулся с одной задачей(точнее мне ее задали как д.з), я вроде программированием 2 года занимаюсь а решить немогу, помогите плз.

Приложение:
  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17. e.in e.out
  18. 0 0 1000
  19. 0 0 500
  20. 0 0 500
  21.  
  22. possible
  23. -468.09507906626652000000 -883.67810709213904000000
  24. -531.24014997680422000000 847.22128340394170000000
  25. 999.33522904307131000000 36.45682368819722500000
  26.  
  27.  
  28.  


Черняев Саша Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Черняев Саша (статус: Посетитель)
Вопрос отправлен: 20 октября 2009, 22:51
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Егор

Здравствуйте, Черняев Саша!

идея есть, как решить. реализацию оставляю автору вопроса, ибо, как правильно заметил min@y™: "а какого...?"

вычислять касательную двух кругов можно, но это долго.
можно пойти другим путём :)

в целом, идея такая:

1) по центрам окружностей деревьев проводим прямую
2) находим точки пересечения этой прямой и окружности клумбы (пусть будут точки 1 и 2)
3) вычисляем точки пересечения прямой с окружностями каждого из деревьев (пусть будут А, В, С и D)
4) пусть текущей будет точка А
5) проводим в текущей точке перпендикуляр к прямой
6) находим пересечение этого перпендикуляра с внешней окружностью (клумбой) - пусть будут точки E и F
7) по точкам E, F и 1 строим треугольник, проверяем, входят ли в него оба дерева - входят - танцуем
8) если не входят, то строим треугольник по точками E, F и 2, проверяем, входят ли деревья в этот треугольник
9) если деревья не входят ни туда, ни сюда, то не расстраиваемся - делаем текущей следующую точку (В, С, D) и возвращаемся к шагу 5
10) а вот тут расстраиваемся, что треугольник не получился...

з.ы. можно, конечно, ещё подоптимизировать алгоритм, например, не проверять точки В и С, треугольник строить только по точке 1 или 2 (по которой имеет смысл) и т.д.

правда, я гений?

:))))))))

Ответ отправил: Егор (статус: 10-ый класс)
Время отправки: 21 октября 2009, 19:59
Оценка за ответ: 5

Комментарий к оценке: Спасибо огромное!!!

Мини-форум вопроса

Всего сообщений: 21; последнее сообщение — 9 ноября 2009, 19:23; участников в обсуждении: 6.

Страницы: [1] [2] [Следующая »]

Мережников Андрей

Мережников Андрей (статус: Абитуриент), 21 октября 2009, 05:51 [#1]:

на каждое дерево свой забор или один забор на оба дерева? Дело не в программировании. Сначала задачу надо решить математически. Если для двух деревьев один забор, то задачу можно переформулировать следующим образом: Возможно ли вписать в заданную окружность (клумбу) треугольник (забор) так, чтобы две другие окружности (деревья) были внутри треугольника.
Черняев Саша

Черняев Саша (статус: Посетитель), 21 октября 2009, 09:55 [#2]:

ну я так понял что есть координаты деревьев и надо построить треугольник в окружности такой, что он не будет выходить за ее пределы и оба дерева не будут выходить за пределы треугольника, но деревья могут лежать на сторонах треугольника.
Заранее благодарю!
Черняев Саша

Черняев Саша (статус: Посетитель), 21 октября 2009, 10:16 [#3]:

то есть построить если это возможно, ваша формулировка,как я считаю, абсолютно правильна.
min@y™

min@y™ (статус: Доктор наук), 21 октября 2009, 15:06 [#4]:

Половину рабочего дня убил уже! Интересная задачка. Процесс идёт!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 21 октября 2009, 15:29 [#5]:

Цитата (Черняев Саша):

Спасибо за помощь! премного благодарен!


Да пока не за что. Никак не могу вывести уравнения касательных к двум окружностям одновременно. Закопался в системе из 4 квадратных уравнений.
Подумываю, а не решить ли всё это численнымим методами...
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 21 октября 2009, 15:33 [#6]:

Залазь ко мне в аську (5466111), поговорим.
Запросы авторизации не принимаются.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
min@y™

min@y™ (статус: Доктор наук), 21 октября 2009, 15:49 [#7]:

Блин, заколебался формулы выводить.
Деревья в клумбе могут располагаться как угодно? Не соприкасаться они могут?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Черняев Саша

Черняев Саша (статус: Посетитель), 21 октября 2009, 16:03 [#8]:

дерево же окружность, и одно дерево может быть в другом! не соприкасаться конечно могут, располагаться как угодно в одной большой окружности!
Вадим К

Вадим К (статус: Академик), 21 октября 2009, 16:23 [#9]:

Могу точно сказать - если "дерево" соприкасается с внешней окружностью, то задача уже нерешаемая.
Галочка "подтверждения прочтения" - вселенское зло.
Черняев Саша

Черняев Саша (статус: Посетитель), 21 октября 2009, 16:27 [#10]:

почему же так, к примеру так: проведем диаметр и поставим на его концы деревья потом проведем радиус перпендикулярный диаметру соединим его конец с деревьями и вуаля!
Вадим К

Вадим К (статус: Академик), 21 октября 2009, 16:33 [#11]:

это будет работать только в том случае, если деревья бесконечно тонки.
Галочка "подтверждения прочтения" - вселенское зло.
Черняев Саша

Черняев Саша (статус: Посетитель), 21 октября 2009, 16:35 [#12]:

да-а... и что же делать? из трех задач нихрена сделать немогу...
min@y™

min@y™ (статус: Доктор наук), 21 октября 2009, 16:42 [#13]:

Очень интересно, если деревья равного радиуса...
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Черняев Саша

Черняев Саша (статус: Посетитель), 21 октября 2009, 16:45 [#14]:

ну если они будут равного радиуса то они не будут совпадать, иначе задача потеряет смысл.
Вадим К

Вадим К (статус: Академик), 21 октября 2009, 16:55 [#15]:

Черняев Саша:
Ну ругаться не стоит. А во вторых, эта задача попахивает олимпиадной. А тут просто "изучаю два года программирование" недостаточно.
У меня есть идея, как решить задачу, но это пока идея.
Галочка "подтверждения прочтения" - вселенское зло.
Черняев Саша

Черняев Саша (статус: Посетитель), 21 октября 2009, 16:59 [#16]:

ну я не ругаюсь, одну задачу решил, всего 40 баллов набрал, 3 другие решил по 100 баллов набрал, осталась эта и еще одна.
А эта действительно олимпиадная задача, это тренировка в рамках подготовки к региональной олимпиаде.это задача с сайта olympiads.ru
min@y™

min@y™ (статус: Доктор наук), 21 октября 2009, 17:00 [#17]:

Цитата (Черняев Саша):

ну если они будут равного радиуса то они не будут совпадать, иначе задача потеряет смысл.


Не потеряет. При некоторых условиях вокруг этих деревьев МОЖНО будет построить треугольный забор, даже если они будут/не будут совпадать. 1хрен, всё выливается в расчёт уравнений общих касательных к окружностям. А это система из 4 квадратных уравнений, 2 из которых ложные.
Короче, поскольку это ты участвуешь в этой олимпиаде, а не я, плати деньги за работу или делай её сам. Я и так на чистом энтузязизьме целый рабочий день её решал, исписал пачку бумаги трёхэтажными дробями. Под вечер меня наконец-то настигла мысль "а какого хрена, собственно?".
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Amidamaru

Amidamaru (статус: 4-ый класс), 21 октября 2009, 20:37 [#18]:

Мда... это называется аналитическая геометрия, довольно немаленький и непростой раздел высшей математики...
Приглашаю Вас на наш IRC-канал: #delphiintru в сети DalNet.
min@y™

min@y™ (статус: Доктор наук), 22 октября 2009, 20:29 [#19]:

Ну таки шо, продолжать?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
prog-mer

prog-mer (статус: Посетитель), 9 ноября 2009, 19:22 [#20]:

А мы похожую задачку в школе решали!

Страницы: [1] [2] [Следующая »]

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:56
Выполнено за 0.02 сек.