IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

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 точек.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
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
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 28.03.2011 7:29
Сообщение #3


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(klik1602 @ 27.03.2011 19:29) *
но уверенности в том что правильно нету, не согласитесь его посмотреть))?

И хорошо, что нет уверенности. Алгоритм неверный. Но рациональное зерно в нем есть, и он может быть довольно просто исправлен.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
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
klik1602   Отсортировав координаты точек в порядке неубывания...   27.03.2011 19:29
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


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 12.07.2025 3:48
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"