|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
15.10.2011, 13:25 | #1 |
Новичок
Джуниор
Регистрация: 15.10.2011
Сообщений: 2
|
отрезок и окружности.
Очень сложная задача,совсем не понимаю как делать.нужно написать ее в программе.(Высокий уровень сложности).
На плоскости задана система концентрических окружностей,центры которых находятся в начале координат,а радиусы равны 1,2,3....Так же на плоскости задан отрезок,концы которого находятся в точках (x1,y1) и (x2,y2). Необходимо найти число общих точек этого отрезка и указанной системы окружностей. Входные данные: входной файл содержит четыре целых числа x1,y1,x2,y2.Эти числа не превосходят 10^3 по абсолютной величине.Заданный отрезок имеет не нулевую длину. Выходные данные: В выходной файл введите одно целое число - количество общих точек. Пример: входные числа: 1 1 2 1; выходные числа: 1. Пример: входные числа: 1 2 2 1; выходные числа: 0 |
15.10.2011, 21:16 | #2 |
Новичок
Джуниор
Регистрация: 15.10.2011
Сообщений: 2
|
Код:
________ Код нужно оформлять по правилам: тегом [CODE]..[/СODE] (это кнопочка с решёточкой #) Не забывайте об этом! Модератор. Последний раз редактировалось Serge_Bliznykov; 16.10.2011 в 01:01. |
16.10.2011, 01:07 | #3 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
мне кажется, что Ваше решение неверно.
я бы посмотрел в сторону такого алгоритма: найти расстояние S1 от начала координат до точки (x1,y1) и найти расстояние S2 от начала координат до точки (x2,y2) ну а дальше посчитать (желательно формулу составить), сколько целых чисел попадает в интервал от [S1.. S2] это и будет числом пересечений. p.s. не претендую на верность решения... Обязательно проверьте на тестовых примерах, нарисуйте несколько вариантов, сравните результаты.. |
16.10.2011, 21:42 | #4 |
Пользователь
Регистрация: 14.10.2011
Сообщений: 51
|
Код:
|
16.10.2011, 21:50 | #5 |
Пользователь
Регистрация: 14.10.2011
Сообщений: 51
|
Код:
|
16.10.2011, 22:51 | #6 |
Раздолбайских Дел
Старожил
Регистрация: 22.05.2009
Сообщений: 3,828
|
Сперва нужно проверить, на каком расстоянии от начала координат находится отрезок, для этого находим формулу прямой, на которой он лежит. (коэфициенты наклона и смещения, важно проверить случаи вертикальной и горизонтальной линий до этого)
Из этой формулы найдем формулу нормали. Далее - точку их пересечения. После этого - расстояние от начала координат до этой точки. Отсюда находим количество пересечений прямой(!) и окружностей. Далее, для каждой окружности определяем, находятся ли внутри нее концы отрезка и в зависимости от этого уменьшаем количество пересечений с прямой.
Alar, верни репу!
Последний раз редактировалось Naive; 16.10.2011 в 22:53. |
17.10.2011, 00:27 | #7 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
warca
мне Ваше решение из поста #5 понравилось. Именно об этом алгоритме я и говорил. В принципе, можно выразить решение через формулу (без цикла), но, в любом случае, такое решение тоже годится, имхо! единственное, выкиньте вычисление AB - оно же нигде у Вас не используется! ну и ещё малюсенькая ложечка дёгтя в бочку мёда с решением - данной решение (как мне кажется) не учитывает случай, когда отрезок начинается прямо с окружности или/и заканчивается прямо на окружности. В Вашем решении эти точки учтены не будут (возможно, я ошибаюсь, ибо решение "не гонял", выводы исключительно умозрительные!)... |
17.10.2011, 13:18 | #8 |
Пользователь
Регистрация: 14.10.2011
Сообщений: 51
|
Основу задачи вывели а дальше остается самая маленькая работа
|
17.10.2011, 14:05 | #9 |
Раздолбайских Дел
Старожил
Регистрация: 22.05.2009
Сообщений: 3,828
|
точки (4;0) и (-4;0) - отрезок дважды проходит через все окружности, ответ - 6
ваш алгоритм выдаст 0 в ответе
Alar, верни репу!
|
17.10.2011, 14:10 | #10 |
Пользователь
Регистрация: 14.10.2011
Сообщений: 51
|
а в чем же тогда ошибка?
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Отрезок. Отсечение | stscolt | Помощь студентам | 0 | 11.11.2009 00:29 |
Дивижение окружности по окружности | Irina8340 | Помощь студентам | 10 | 13.05.2009 20:25 |
Отрезок | Witaliy | Помощь студентам | 5 | 14.02.2009 19:46 |
движение окружности по окружности | MyQwErTy | Помощь студентам | 13 | 04.11.2008 22:52 |