Если это ваш первый визит, рекомендуем почитать справку по форуму. Для размещения своих сообщений необходимо зарегистрироваться. Для просмотра сообщений выберите раздел. |
![]() |
||
![]() |
Философия, технологии, алгоритмы! |
![]() |
|
Опции темы |
![]() |
#1 | |
взрываю мозг
Сообщений: 3,576
Регистрация: 07.05.2003
![]() |
Интересная задача
Попалась интересная задача:
Цитата:
Если кто знает, то подскажите плз) |
|
![]() |
![]() |
![]() |
#2 |
Форумец
Сообщений: 1,109
Регистрация: 19.12.2004
Возраст: 42
![]() |
думаю нужно взять первый круг, найти кусочек дуги окружности которым она лежит внутри второго круга, потом найти как уже этот кусочек дуги какой своей частью лежит в следующем круге, и так делать пока кусочек такой еще существует, или пока не перебирешь все круги, если перебрал все круги и есть кусочек дуги первой окружности который лежит внутри всех остальных кругов, то искомая точка есть их многа и берешь любую точку с этой дуги, если дуги не осталось, значит не пересекаются эти круги.
|
![]() |
![]() |
![]() |
#4 |
Форумец
Сообщений: 1,109
Регистрация: 19.12.2004
Возраст: 42
![]() |
дуга задается центром её круга и двумя углами. найти дугу которая лежит внутри соседнего круга можно, соответсвенно можно найти их общую часть.
просто влом расписывать в рабочее время решение ![]() ![]() |
![]() |
![]() |
![]() |
#5 | |
Мегафорумец
Сообщений: 12,065
Регистрация: 28.11.2006
Возраст: 24
![]() |
Цитата:
|
|
![]() |
![]() |
![]() |
#6 |
матьперемать
Сообщений: 1,308
Регистрация: 10.12.2005
![]() |
ГЫ, наверное ничем не помогу, но могу сказать, что те кто в басовке эту задачу решал в 10-м классе со 2-го или на худой конец 3-го курса ПММ повылетали
![]() И все такие вот были - типа знаю как и что, но ничего не скажу, кроме того, что я крут |
![]() |
![]() |
![]() |
#8 |
киллер
Сообщений: 3,229
Регистрация: 24.05.2006
![]() |
SuHar`, ужас, ты серьёзно спрашиваешь? Имеют ли общую точку - проверяешь расстояние между двумя центрами и сумму их радиусов (если расстояние больше, то не пересекаются). Перебор по всем центрам делаешь и всё (каждого с каждым: цикл в цикле). А в принципе, это система уравнений. Просто запиши в виде уравнения координаты точки внутри круга с центром (икс1, игрек1) и радиусом эр1. Дальше объяснять?
|
![]() |
![]() |
![]() |
#9 | |
киллер
Сообщений: 3,229
Регистрация: 24.05.2006
![]() |
Цитата:
![]() |
|
![]() |
![]() |
![]() |
#10 | |
няшечка
Сообщений: 5,311
Регистрация: 13.06.2003
![]() |
Цитата:
ЗЫ Один-в-один задачка была в школе ещё. |
|
![]() |
![]() |
![]() |
#11 | |||
Мегафорумец
Сообщений: 12,065
Регистрация: 28.11.2006
Возраст: 24
![]() |
Цитата:
А можно и аспирантуру пмм закончить, и потом спрашивать Цитата:
Цитата:
|
|||
![]() |
![]() |
![]() |
#12 | ||
Мегафорумец
Сообщений: 12,065
Регистрация: 28.11.2006
Возраст: 24
![]() |
Цитата:
Цитата:
|
||
![]() |
![]() |
![]() |
#13 | |
Форумец
Сообщений: 2,376
Регистрация: 14.02.2004
![]() |
Цитата:
|
|
![]() |
![]() |
![]() |
#14 | ||
взрываю мозг
Сообщений: 3,576
Регистрация: 07.05.2003
![]() |
Цитата:
Насчет расстояний между центрами и радиусами. С двумя кругами это прокатит, а вот с несколькими уже не факт. Три круга например могут попарно пересекаться, но все три сразу общих точек не иметь. А насчет системы: во-первых, не уравнений, а неравенств. А во вторых, второй степени. Что-то не очень хочется с ней возиться...))) Цитата:
![]() |
||
![]() |
![]() |
![]() |
#15 | |
киллер
Сообщений: 3,229
Регистрация: 24.05.2006
![]() |
Цитата:
![]() Могу посоветовать перебор всех действительных чисел - может, это тебе будет по душе? Подставляешь в цикле во все неравенства. Берёшь числа от крайнего левого центра круга минус его радиус до крайнего праого плюс его радиус. Шаг одну миллионную или побольше и пусть компьютер считает. Находит первую точку, которая подходит всем неравенствам, выдаёт координаты и пишет, что точка существует. Устраивает, лентяй? ![]() |
|
![]() |
![]() |
![]() |
#16 | |
Мегафорумец
Сообщений: 12,065
Регистрация: 28.11.2006
Возраст: 24
![]() |
Цитата:
|
|
![]() |
![]() |
![]() |
#17 | |
киллер
Сообщений: 3,229
Регистрация: 24.05.2006
![]() |
Цитата:
![]() |
|
![]() |
![]() |
![]() |
#18 | |
Форумец
Сообщений: 2,376
Регистрация: 14.02.2004
![]() |
Цитата:
|
|
![]() |
![]() |
![]() |
#20 | ||
взрываю мозг
Сообщений: 3,576
Регистрация: 07.05.2003
![]() |
Цитата:
![]() 1. Множество действительных чисел бесконечно. 2. Да и к тому же не счетно. Так что не получится ![]() Цитата:
Ладно, попробую все-таки повозиться с системой. Тем более что-то мне подсказывает, что можно ее свести к первой степени... |
||
![]() |
![]() |
![]() |
#23 |
Форумец
Сообщений: 22
Регистрация: 12.01.2003
![]() |
Похожая задача
http://homepages.compuserve.de/chasl...tic_info56.htm |
![]() |
![]() |
![]() |
#25 |
матьперемать
Сообщений: 1,308
Регистрация: 10.12.2005
![]() |
Snusmumrik, расслабьтесь
![]() Не лень же в архив влезть и поискать кто чего когда писал, я фигею. Я и не говорила никому что я крутой программист, да я вообще не программист, и что? Проще, улыбайтесь чаще ![]() А про басовцев, вылетающих с ПММ пачками - просто правда жизни. Задело, что ли? Все, удаляюсь, дабы не смущать великие умы ![]() |
![]() |
![]() |
![]() |
#26 | ||
Мегафорумец
Сообщений: 12,065
Регистрация: 28.11.2006
Возраст: 24
![]() |
Цитата:
Цитата:
|
||
![]() |
![]() |
![]() |
#29 |
Форумец
Сообщений: 2,376
Регистрация: 14.02.2004
![]() |
Задача о точках пересечения двух окружностей расписана в учебнике геометрии в параграфе "Декартовы координаты на плоскости, уравнение окружности". Там в начало координат помещают центр первой окружности, на оси Х помещают центр другой окружности на удалении С от начала. Составляется система двух уравнений и находятся решения. Для приведенной выше задачи нужно вычислить расстояние между центрами окружностей, чтобы выявить количество точек пересечения /от 0 до 2/ и построить по описанной методе чертеж. А преобразовать координаты можно, как в предыдущем сообщении указано. сдвигом и поворотом. Сдвиг выражается простыми формулами: x2=a+x1, y2=b+Y1. Поворот на угол f - более сложными: x2= x1*sinf -y1*cosf; y2=x1*cosf +y1*sinf.
http://physics.nad.ru/cgi-bin/forum....10180&resp=166 Так сойдет? ![]() |
![]() |
![]() |
![]() |
#30 |
Форумец
Сообщений: 19
Регистрация: 25.06.2007
Возраст: 37
![]() |
Не знаю насколько оптимально, но всеже алгоритм:
1. Рассмотрим окружности с1 и с2. Найдем точку, принадлежащую пересечению этих окружностей (например, (р1+р2)/2). Назовем эту точку М1. Проверим, принадлежит, ли точка пересечению, иначе выход. 2. Рассмотрим окружность с3: - находим уравнение прямой, проходящей через М1 и (х3;у3) - ищем точку пересечения с окружностью с3. Точка М2 - проверяем, принадлежит ли эта точка окр. с1, с2, иначе - выход 3. Повторим п.2. для окр с4 и точки М2 и т.д. В итоге - точка, принадлежащая всем окружностям.... Можно немного оптимизировать алгоритм, просто придумал быстро... |
![]() |
![]() |