Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.06.2011, 23:12   #1
n00bik
 
Регистрация: 18.06.2011
Сообщений: 3
Восклицание Написать программу, которая находит такую точку z(x,y), сумма расстояний от которой до остальных минимальна

На двумерной плоскости задано N точек с координатами (X1,Y1), (X2,Y2)... ,(Xn,Yn).
Написать программу, которая находит такую точку z(x,y), сумма расстояний от которой до остальных минимальна и а)Z- одна из заданных точек;
b) Z- произвольная точка плоскости
n00bik вне форума Ответить с цитированием
Старый 18.06.2011, 23:13   #2
n00bik
 
Регистрация: 18.06.2011
Сообщений: 3
По умолчанию

я почитал, вроде метод пнребора тут, но я не догоняю ((
n00bik вне форума Ответить с цитированием
Старый 19.06.2011, 17:43   #3
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
А) вычислить все суммы расстояний, а затем взять среди них минимальную.
В) Z есть центр масс системы из N точек Zx=(x1+ ... +xN)/N Zy=(y1+ ... +yN)/N
Код:
uses crt;
var x,y:array[1..100] of real;
Zx,Zy:real;
i,j,n,zn:integer;
smin,sbuf:real;
function Rast(x1,x2,y1,y2:real):real;
begin
rast:=sqrt(sqr(x1-x2)+sqr(y1-y2));
end;
begin
write('n=');readln(n);
for i:=1 to n do
begin
write('x',i,'=');readln(x[i]);
write('y',i,'=');readln(y[i]);
end;
smin:=99999;zn:=0;
for i:=1 to n do
begin
sbuf:=0;
for j:=1 to n do
sbuf:=sbuf+rast(x[j],x[i],y[j],y[i]);
if sbuf<smin then begin zn:=i; smin:=sbuf;end;
end;
writeln('a) point [',x[zn],',',y[zn],']');
for i:=1 to n do begin
zx:=zx+x[i];
zy:=zy+y[i]; end;
writeln('b) point [',zx/n,',',zy/n,']');
readln;
end.
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 21.06.2011, 00:39   #4
n00bik
 
Регистрация: 18.06.2011
Сообщений: 3
По умолчанию

уже отблагодарил))
n00bik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
написать программу, которая находит 20 целых решений уравнения x^2+y^2=z^2 (x,y,z<>0) katya111 Паскаль, Turbo Pascal, PascalABC.NET 0 18.05.2011 15:43
Как написать такую программу? Fenrir Yensen Помощь студентам 3 05.12.2010 12:20
Составить программу которая находит индекс числа в массиве случайных чисел MadNikys Помощь студентам 9 03.03.2010 20:52
Найти такую точку, сумма расстояний от которой до остальных точек минимальна SIEGER Помощь студентам 3 18.11.2008 17:53
определение функции, которая находит кол-во столбцов, сумма в которых больше средне арифметич Sandwich Помощь студентам 11 29.10.2007 12:24