Множество точек, Найти макс. растояние |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Множество точек, Найти макс. растояние |
Леха |
Сообщение
#1
|
Гость |
Привет всем кто мне поможет. Дана задача
Во множестве точек на плоскости найти пару точек с максимальным расстоянием между ними. |
volvo |
Сообщение
#2
|
Гость |
А в чем проблема? знаешь, как находится расстояние между двумя точками? а потом - полным перебором и искать максимальное из расстояний ...
Сообщение отредактировано: volvo - |
Леха |
Сообщение
#3
|
Гость |
Вот в этом и проблема как можно найти расстояние, а затем среди них выбрать максимальное.
|
APAL |
Сообщение
#4
|
Смотрю... Группа: Пользователи Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: 6 |
Расстояние - по формуле.
Максимальное - полным перебором. -------------------- |
APAL |
Сообщение
#5
|
Смотрю... Группа: Пользователи Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: 6 |
Теорема пифагора: квадрат гипотенузы = сумме квдратов катетов.
-------------------- |
Леха |
Сообщение
#6
|
Гость |
А по подробнее. По какой формуле? Каким перебором? Ну допутим с перебором я справлюсь, но для этого мне нужно найти расстояния.
|
APAL |
Сообщение
#7
|
Смотрю... Группа: Пользователи Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: 6 |
См. мое предидущее сообщение. Катеты - это как раз и есть X и Y точки.
Вернее: (X1-X2)^2+(Y1-Y2)^2=(расстояние между точками)^2 -------------------- |
Леха |
Сообщение
#8
|
Гость |
А не можешь написать как это будет выглядеть в Паскале?
|
APAL |
Сообщение
#9
|
Смотрю... Группа: Пользователи Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: 6 |
А самому подумать?
-------------------- |
virt |
Сообщение
#10
|
Знаток Группа: Пользователи Сообщений: 419 Пол: Мужской Репутация: 6 |
как вариант построить выпуклую оболочку ,и потом перебором только по точкам принадлежащим этой оболочке.
-------------------- |
APAL |
Сообщение
#11
|
Смотрю... Группа: Пользователи Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: 6 |
virt
Зачем нам выпуклая оболочка? Все точки на плоскости. Я уже и формулу привел... -------------------- |
Лита |
Сообщение
#12
|
Новичок Группа: Пользователи Сообщений: 31 Пол: Женский Репутация: 0 |
APAL
а при чем здесь теорема Пифагора для прямоугольного треугольника, если надо найти расстояния между ДВУМЯ точками? мошь я че не понимаю... -------------------- Что нам стоит мир пострить? Нарисуем - будем жить...
|
volvo |
Сообщение
#13
|
Гость |
Лита
Проекция отрезка на ось абсцисс - один катет, проекция на ось ординат - второй. По теореме Пифагора находим гипотенузу = расстояние между точками ... :yes: |
Altair |
Сообщение
#14
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Общий алгоритм таков:
1. взять произвольную точку. 2. Вычислить расстояние от нее до всех других (циклически). 3. выбрать максимальное. Цитата а при чем здесь теорема Пифагора А если я скажу, что нажо определить длинну вектора от одной точки до другой, будет понятнее -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Лита |
Сообщение
#15
|
Новичок Группа: Пользователи Сообщений: 31 Пол: Женский Репутация: 0 |
Цитата(Oleg_Z @ 13.11.04 6:57) Общий алгоритм таков: 1. взять произвольную точку. 2. Вычислить расстояние от нее до всех других (циклически). 3. выбрать максимальное. так это для каждой точки надо делать такое, правильно??? -------------------- Что нам стоит мир пострить? Нарисуем - будем жить...
|
trminator |
Сообщение
#16
|
Четыре квадратика Группа: Пользователи Сообщений: 579 Пол: Мужской Репутация: 4 |
Код 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 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Цитата так это для каждой точки надо делать такое, правильно??? Угу! :yes: -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Текстовая версия | 11.01.2025 22:37 |