С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
qloaqa
0 / 0 / 0
Регистрация: 08.12.2011
Сообщений: 7
1

Найти точку на плоскости, сумма расстояний от которой до остальных точек множества максимальна

19.12.2011, 20:56. Просмотров 1824. Ответов 4
Метки нет (Все метки)

Друзья, мне вновь необходима любая ваша помощь по теме)
Задача такова: решить задачу, с помощью структуру для хранения координат точки, нужно найти точку на плоскости сумма расстояний от которой до остальных точек множества максимальна.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2011, 20:56
Ответы с готовыми решениями:

Найти такую точку заданного на плоскости множества точек, сумма расстояний от которой до остальных минимальна
осталась последняя задача по Си, от неё зависит зачёт. Условия такие: найти...

Найти такую точку, сумма расстояний от которой до остальных минимальна
Добрый всем день. Помогите мне решить данное задание , я плохо разбираюсь в...

Найти точку, у которой сумма расстояний до других точек наименьшая
Пользователь вводит координаты точек. Как найти точку, сумма расстояний до...

Найти точку множества, для которой сумма расстояний к другим точкам минимальна
Дано натуральное число n множество с n точек на плоскости, что задаются...

Среди заданных точек на плоскости найти ту, у которой расстояние суммы равно наибольшему от остальных точек
Помогите вывести не цифру наибольшего значения, а все число. Задача: среди...

4
iomanip
0 / 0 / 0
Регистрация: 12.06.2014
Сообщений: 2
19.12.2011, 21:43 2
В первом моём посте описка - в пространстве, а не на плоскости
Собственно вот что получилось
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#include <cmath>
using namespace std;
 
struct point
{ float x,y,z;
};
double dlina (point a)
{ return sqrt(a.x*a.x+a.y*a.y+a.z*a.z);}
int main()
{ point a[100];
int n;
cout<<"введите n";
cin>>n;
for (int i=0; i<n; i++)
{cout<<"введите координаты точки"<<i<<" от точки";
cin>>a[i].x>>a[i].y>>a[i].z;}
double max=0; int k=0;
for (int i=0; i<n; i++)
    if (dlina (a[i])>max)
{max=dlina(a[i]);
k=i;}
cout<<"k="<<k;
return 0; }
Но теперь к вам другой вопрос, почему, выдается k=0 и ничего не считается, если я к примеру в консоли задаю:
введите n 2
введите координаты точки0 от точки (3;5)
введите координаты точки1 от точкиk=0
К слову почему-то не могу зайти как qloaqa.
0
Ree.exe
56 / 56 / 16
Регистрация: 01.08.2011
Сообщений: 141
19.12.2011, 23:18 3

Не по теме:

delete



Добавлено через 10 минут
Вот тесть
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include<iostream>
#include<windows.h>
#include<fstream>
#include<cmath>
using namespace std;
 
struct my_point
{
    int x;
    int y;
    int z;
};
 
int GetPoint( my_point *& , const char* );
double Distance( my_point* , my_point , int );
 
int main()
{
    int k;
    my_point* p;
    k = GetPoint(p,"Output.txt");
 
    double MaxSumLong=0, Dl;
    for(int i=0; i<k; i++)
    {
        Dl=Distance(p,p[i],k);
        if(Dl >  MaxSumLong)
             MaxSumLong=Dl;
    }
    cout<<"Max long "<<MaxSumLong<<endl;
    system("pause");
 
}
 
 
int GetPoint(my_point*& pArrayPpoint, const char* FileName)
{
    fstream File(FileName, ios::in);
    int k;
    File>>k;
    pArrayPpoint = new my_point [k];
    for(int i=0; i<k; i++)
    {
        File>>pArrayPpoint[i].x>>pArrayPpoint[i].y>>pArrayPpoint[i].z;
    }
    return k;
}
 
 double Distance( my_point* pArrayPpoint,my_point pl, int k)
{
    double SumDistance=0;
    for(int i=0; i<k; i++)
        SumDistance += sqrt(  pow( (double) pl.x -pArrayPpoint[i].x, 2) + pow( (double) pl.y-pArrayPpoint[i].y, 2) +  pow( (double) pl.z-pArrayPpoint[i].z, 2)  );
    return SumDistance;
}
Не забудь создать файл Output.txt в котором первое число это количество точек, а дальше их координаты.
2
qloaqa
0 / 0 / 0
Регистрация: 08.12.2011
Сообщений: 7
20.12.2011, 00:01  [ТС] 4
Замечательно. Огромная благодарность вам :dance3:
0
Almiqui
20.12.2011, 00:07     Найти точку на плоскости, сумма расстояний от которой до остальных точек множества максимальна
  #5
 Комментарий модератора 
Цитата Сообщение от iomanip Посмотреть сообщение
К слову почему-то не могу зайти как qloaqa.
Я так понимаю, что смогли войти. Клона забаню.
0
20.12.2011, 00:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.12.2011, 00:07
Привет! Вот еще темы с ответами:

Найти число точек и сумму расстояний от первой точки до остальных точек
Вектора X и Y задаются вводом; n — размер каждого из векторов X и Y. Пара...

Найти число точек, у которых ордината больше абсциссы и сумму расстояний от первой точки до остальных
Задание такое: пара (Xk,Yk) представляет координаты одной из n точек на...

Из множества точек на плоскости найти точки, образующие параллелограмм с наибольшим количеством точек внутри
&quot;Даны N точек на плоскости. Найти среди них точки являющиеся вершинами фигуры,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru