![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Леха |
![]()
Сообщение
#1
|
Гость ![]() |
Привет всем кто мне поможет. Дана задача
Во множестве точек на плоскости найти пару точек с максимальным расстоянием между ними. |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
А в чем проблема? знаешь, как находится расстояние между двумя точками? а потом - полным перебором и искать максимальное из расстояний ...
Сообщение отредактировано: volvo - 12.11.2004 16:52 |
Леха |
![]()
Сообщение
#3
|
Гость ![]() |
Вот в этом и проблема как можно найти расстояние, а затем среди них выбрать максимальное.
|
APAL |
![]()
Сообщение
#4
|
![]() Смотрю... ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: ![]() ![]() ![]() |
Расстояние - по формуле.
Максимальное - полным перебором. -------------------- |
APAL |
![]()
Сообщение
#5
|
![]() Смотрю... ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: ![]() ![]() ![]() |
Теорема пифагора: квадрат гипотенузы = сумме квдратов катетов.
-------------------- |
Леха |
![]()
Сообщение
#6
|
Гость ![]() |
А по подробнее. По какой формуле? Каким перебором? Ну допутим с перебором я справлюсь, но для этого мне нужно найти расстояния.
|
APAL |
![]()
Сообщение
#7
|
![]() Смотрю... ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: ![]() ![]() ![]() |
См. мое предидущее сообщение. Катеты - это как раз и есть X и Y точки.
Вернее: (X1-X2)^2+(Y1-Y2)^2=(расстояние между точками)^2 -------------------- |
Леха |
![]()
Сообщение
#8
|
Гость ![]() |
А не можешь написать как это будет выглядеть в Паскале?
|
APAL |
![]()
Сообщение
#9
|
![]() Смотрю... ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: ![]() ![]() ![]() |
А самому подумать?
-------------------- |
virt |
![]()
Сообщение
#10
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 419 Пол: Мужской Репутация: ![]() ![]() ![]() |
как вариант построить выпуклую оболочку ,и потом перебором только по точкам принадлежащим этой оболочке.
-------------------- |
APAL |
![]()
Сообщение
#11
|
![]() Смотрю... ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: ![]() ![]() ![]() |
virt
Зачем нам выпуклая оболочка? Все точки на плоскости. Я уже и формулу привел... -------------------- |
Лита |
![]()
Сообщение
#12
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 31 Пол: Женский Репутация: ![]() ![]() ![]() |
APAL
а при чем здесь теорема Пифагора для прямоугольного треугольника, если надо найти расстояния между ДВУМЯ точками? ![]() мошь я че не понимаю... ![]() -------------------- Что нам стоит мир пострить? Нарисуем - будем жить...
|
volvo |
![]()
Сообщение
#13
|
Гость ![]() |
Лита
Проекция отрезка на ось абсцисс - один катет, проекция на ось ординат - второй. По теореме Пифагора находим гипотенузу = расстояние между точками ... :yes: |
Altair |
![]()
Сообщение
#14
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Общий алгоритм таков:
1. взять произвольную точку. 2. Вычислить расстояние от нее до всех других (циклически). 3. выбрать максимальное. Цитата а при чем здесь теорема Пифагора А если я скажу, что нажо определить длинну вектора от одной точки до другой, будет понятнее ![]() -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Лита |
![]()
Сообщение
#15
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 31 Пол: Женский Репутация: ![]() ![]() ![]() |
Цитата(Oleg_Z @ 13.11.04 6:57) Общий алгоритм таков: 1. взять произвольную точку. 2. Вычислить расстояние от нее до всех других (циклически). 3. выбрать максимальное. так это для каждой точки надо делать такое, правильно??? ![]() -------------------- Что нам стоит мир пострить? Нарисуем - будем жить...
|
trminator |
![]()
Сообщение
#16
|
Четыре квадратика ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 579 Пол: Мужской Репутация: ![]() ![]() ![]() |
Код const maxn = 100; var i, j : integer; x, y : array[1..maxn] of double; // Координаты точек n : integer; max_ro : double; max_point1, max_point2 : integer; // номер точки function ro(i, j : integer) : double; {Тут работает теорема им. тов. Пифагора} begin ro := sqr(x[i] - x[j]) + sqr(y[i] - y[j]); // На квадрат забиваем. (r1^2 > r2^2) <=> ((r1 > r2) & (r1>=0, r2>=0)) end; begin Write('Введи количество точек > '); readLn(n); for i := 1 to n do begin write('Координаты ', i, '-й точки > '); readLn(x[i], y[i]); end; max_ro := 0; {Проверяем все точки. Перебор} for i := 1 to n do for j := i to n do // от i, так как если проверили расстояние 1-2, то 2-1 уже не надо =) if ro(i, j) > max_ro then begin max_ro := ro(i, j); max_point1 := i; max_point2 := j; end; writeLn('Точки с координатами (', x[max_point1]:0:3, y[max_point1]:0:3, ') и (',x[max_point2]:0:3, y[max_point2]:0:3,')'); end. -------------------- Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала |
Altair |
![]()
Сообщение
#17
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: ![]() ![]() ![]() |
Цитата так это для каждой точки надо делать такое, правильно??? Угу! :yes: -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
![]() ![]() |
![]() |
Текстовая версия | 24.07.2025 3:16 |