1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
| klik1602 |
3.03.2011 23:07
Сообщение
#1
|
|
Новичок ![]() Группа: Пользователи Сообщений: 49 Пол: Женский Реальное имя: Натали Репутация: 1 |
Помогите пожалуйста!! Завтра сдавать, я в графах ни бум-бум...очень прошу!
23. На плоскости заданы 2n точек своими координатами. Найдите уравнение какой-либо прямой, делящей данное множество точек на два подмножества по n точек. |
![]() ![]() |
| klik1602 |
27.03.2011 19:29
Сообщение
#2
|
|
Новичок ![]() Группа: Пользователи Сообщений: 49 Пол: Женский Реальное имя: Натали Репутация: 1 |
Отсортировав координаты точек в порядке неубывания Х-овых координат, а в случае одинаковых Х-овых координат в порядке неубывания У-овых координат, находим координаты средней точки (находящуюся в позиции n div 2+1), пусть это точка (Х0,У0). При этом множество точек оказалось разбито на 3 части: точки, лежащие на прямой х=Х0; точки, лежащие левее прямой х=Х0; точки, лежащие правее прямой х=Х0. Представим, что точки, лежащие левее прямой х=Х0 ( точки, лежащие правее прямой х=Х0) лежат в пределах некоторого прямоугольника, где Х1 (Х2) координаты его правого (левого) края. Тогда легко понять, что существует прямая с достаточно большим углом наклона, которая разделяет эти части. Осталось разделить только точки на прямой, чтобы количество точек в получившихся частях было соответствующим (т.е. пересечение прямой с прямой х=Х0). Если количество точек нечетно, то искомая линия проходит через среднюю точку, иначе над средней точкой (но под предыдущей, если она лежит па прямой х=Х0).
Определим: Х1 - может быть легко найдена просмотром массива Х-овых координат справа налево от средней точки до нахождения первой координаты, отличной от Х0. Если такая координата не найдена, то Х1=Х0-1. Х2 - может быть легко найдена просмотром массива Х-овых координат слева направо от средней точки до нахождения первой координаты, отличной от Х0. Если такая координата не найдена, то Х1=Х0+1. У1 - это У-овая координата точки, предшествующей средней точке, если Х-ая ее координата равна Х0, или равна У0-1, если Х-овая координата точки, предшествующей средней точке, не равна Х0. После того, как Х0,У0,Х1,У1 найдены, осталось написать уравнение прямой через точки с координатами (Х2,У2) (Х3,У3), определяемыми по следующему правилу: если N - четно то Х2=Х0; У2=(У0+У1)/2, Х3=Х0+Z/2,У3=У0-Ymax+Ymin иначе Х2=Х0; У2=У0, Х3=Х0+Z/2,У3=У0-Ymax+Ymin где Ymax- максимальная У-овая координата, Ymin - минимальная У-овая координата, Z=min(Х0-Х1,Х2-Х0). кстати я всё сделала по этому алгоритму, всё работает) но уверенности в том что правильно нету, не согласитесь его посмотреть))? Сообщение отредактировано: klik1602 - 27.03.2011 19:29 |
klik1602 Задача на графы 3.03.2011 23:07
Krjuger Условие не совсем понятно.А что если некоторые точ... 3.03.2011 23:56
klik1602 у меня только это условие и никаких пояснений( зад... 4.03.2011 0:28
Lapp 23. На плоскости заданы 2n точек своими координата... 4.03.2011 0:50
klik1602 ммм, попробую завтра утром сделать, если успею, но... 4.03.2011 1:15
Lapp не понимаю как вот это реализовать
Реализовать э... 4.03.2011 6:05
TarasBer 1. Нам надо найти прямую, которая не параллельная ... 4.03.2011 9:57
klik1602 добрый вечер, снова возвращаюсь к этой программе, ... 26.03.2011 21:26
Krjuger a[i]a[j]-это 2 точки нашего исходного массива,прин... 27.03.2011 2:04
Lapp Я думаю, что в условии должно быть требование, что... 27.03.2011 2:13
klik1602 Цитата
Пусть её уравнение M*x+N*y+k=0.
, я так пон... 27.03.2011 12:46
Krjuger
Не совсем,смотрите его тождества.
Если к равно 0... 27.03.2011 13:19
klik1602 нашла на просторах интернета похожую задачу на мою... 27.03.2011 16:13
Krjuger Вы можете взять и скопировать этот алгоритм суда,е... 27.03.2011 17:17
Lapp но уверенности в том что правильно нету, не соглас... 28.03.2011 7:29
klik1602 подскажите хотя бы в каком месте ошибка, чтобы ис... 28.03.2011 16:10
Krjuger Ну чтобы проверить,правильно или нет,нарисуйте на ... 28.03.2011 16:34
klik1602 вот код:
program L15_23;
const
maxn=100;
type
ko... 28.03.2011 18:30![]() ![]() |
|
Текстовая версия | 24.12.2025 20:14 |