Если это ваш первый визит, рекомендуем почитать справку по форуму. Для размещения своих сообщений необходимо зарегистрироваться. Для просмотра сообщений выберите раздел. |
Интересная задача |
Философия, технологии, алгоритмы! |
|
|
Опции темы |
23.11.2007, 13:17 | #1 | |
взрываю мозг
Сообщений: 3,586
Регистрация: 07.05.2003
Не в сети |
Интересная задача
Попалась интересная задача:
Цитата:
Если кто знает, то подскажите плз) |
|
23.11.2007, 13:35 | #2 |
Форумец
Сообщений: 1,109
Регистрация: 19.12.2004
Возраст: 42
Не в сети |
думаю нужно взять первый круг, найти кусочек дуги окружности которым она лежит внутри второго круга, потом найти как уже этот кусочек дуги какой своей частью лежит в следующем круге, и так делать пока кусочек такой еще существует, или пока не перебирешь все круги, если перебрал все круги и есть кусочек дуги первой окружности который лежит внутри всех остальных кругов, то искомая точка есть их многа и берешь любую точку с этой дуги, если дуги не осталось, значит не пересекаются эти круги.
|
23.11.2007, 15:46 | #4 |
Форумец
Сообщений: 1,109
Регистрация: 19.12.2004
Возраст: 42
Не в сети |
дуга задается центром её круга и двумя углами. найти дугу которая лежит внутри соседнего круга можно, соответсвенно можно найти их общую часть.
просто влом расписывать в рабочее время решение давай мне ништяков какнихнибудь и я те распишу че как |
23.11.2007, 15:50 | #5 | |
Мегафорумец
Сообщений: 12,151
Регистрация: 28.11.2006
Возраст: 24
Не в сети |
Цитата:
|
|
23.11.2007, 17:54 | #6 |
матьперемать
Сообщений: 1,308
Регистрация: 10.12.2005
Не в сети |
ГЫ, наверное ничем не помогу, но могу сказать, что те кто в басовке эту задачу решал в 10-м классе со 2-го или на худой конец 3-го курса ПММ повылетали
И все такие вот были - типа знаю как и что, но ничего не скажу, кроме того, что я крут |
23.11.2007, 18:50 | #8 |
киллер
Сообщений: 3,231
Регистрация: 24.05.2006
Не в сети |
SuHar`, ужас, ты серьёзно спрашиваешь? Имеют ли общую точку - проверяешь расстояние между двумя центрами и сумму их радиусов (если расстояние больше, то не пересекаются). Перебор по всем центрам делаешь и всё (каждого с каждым: цикл в цикле). А в принципе, это система уравнений. Просто запиши в виде уравнения координаты точки внутри круга с центром (икс1, игрек1) и радиусом эр1. Дальше объяснять?
|
23.11.2007, 18:52 | #9 | |
киллер
Сообщений: 3,231
Регистрация: 24.05.2006
Не в сети |
Цитата:
|
|
23.11.2007, 19:09 | #10 | |
няшечка
Сообщений: 5,314
Регистрация: 13.06.2003
Не в сети |
Цитата:
ЗЫ Один-в-один задачка была в школе ещё. |
|
23.11.2007, 20:03 | #11 | |||
Мегафорумец
Сообщений: 12,151
Регистрация: 28.11.2006
Возраст: 24
Не в сети |
Цитата:
А можно и аспирантуру пмм закончить, и потом спрашивать Цитата:
Цитата:
|
|||
23.11.2007, 20:22 | #12 | ||
Мегафорумец
Сообщений: 12,151
Регистрация: 28.11.2006
Возраст: 24
Не в сети |
Цитата:
Цитата:
|
||
23.11.2007, 20:28 | #13 | |
Форумец
Сообщений: 2,376
Регистрация: 14.02.2004
Не в сети |
Цитата:
|
|
23.11.2007, 20:36 | #14 | ||
взрываю мозг
Сообщений: 3,586
Регистрация: 07.05.2003
Не в сети |
Цитата:
Насчет расстояний между центрами и радиусами. С двумя кругами это прокатит, а вот с несколькими уже не факт. Три круга например могут попарно пересекаться, но все три сразу общих точек не иметь. А насчет системы: во-первых, не уравнений, а неравенств. А во вторых, второй степени. Что-то не очень хочется с ней возиться...))) Цитата:
|
||
23.11.2007, 21:35 | #15 | |
киллер
Сообщений: 3,231
Регистрация: 24.05.2006
Не в сети |
Цитата:
Могу посоветовать перебор всех действительных чисел - может, это тебе будет по душе? Подставляешь в цикле во все неравенства. Берёшь числа от крайнего левого центра круга минус его радиус до крайнего праого плюс его радиус. Шаг одну миллионную или побольше и пусть компьютер считает. Находит первую точку, которая подходит всем неравенствам, выдаёт координаты и пишет, что точка существует. Устраивает, лентяй? |
|
23.11.2007, 21:41 | #16 | |
Мегафорумец
Сообщений: 12,151
Регистрация: 28.11.2006
Возраст: 24
Не в сети |
Цитата:
|
|
23.11.2007, 22:08 | #17 | |
киллер
Сообщений: 3,231
Регистрация: 24.05.2006
Не в сети |
Цитата:
|
|
23.11.2007, 22:25 | #18 | |
Форумец
Сообщений: 2,376
Регистрация: 14.02.2004
Не в сети |
Цитата:
|
|
24.11.2007, 11:07 | #20 | ||
взрываю мозг
Сообщений: 3,586
Регистрация: 07.05.2003
Не в сети |
Цитата:
1. Множество действительных чисел бесконечно. 2. Да и к тому же не счетно. Так что не получится Цитата:
Ладно, попробую все-таки повозиться с системой. Тем более что-то мне подсказывает, что можно ее свести к первой степени... |
||
25.11.2007, 17:58 | #23 |
Форумец
Сообщений: 22
Регистрация: 12.01.2003
Не в сети |
Похожая задача
http://homepages.compuserve.de/chasl...tic_info56.htm |
26.11.2007, 11:20 | #25 |
матьперемать
Сообщений: 1,308
Регистрация: 10.12.2005
Не в сети |
Snusmumrik, расслабьтесь
Не лень же в архив влезть и поискать кто чего когда писал, я фигею. Я и не говорила никому что я крутой программист, да я вообще не программист, и что? Проще, улыбайтесь чаще А про басовцев, вылетающих с ПММ пачками - просто правда жизни. Задело, что ли? Все, удаляюсь, дабы не смущать великие умы |
26.11.2007, 13:50 | #26 | ||
Мегафорумец
Сообщений: 12,151
Регистрация: 28.11.2006
Возраст: 24
Не в сети |
Цитата:
Цитата:
|
||
26.11.2007, 18:51 | #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 Так сойдет? |
27.11.2007, 06:35 | #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 и т.д. В итоге - точка, принадлежащая всем окружностям.... Можно немного оптимизировать алгоритм, просто придумал быстро... |