Форум программистов, компьютерный форум CyberForum.ru

Найти точку, у которой сумма расстояний до других точек наименьшая - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
b0n4b
2 / 2 / 0
Регистрация: 16.11.2011
Сообщений: 100
28.12.2011, 20:56     Найти точку, у которой сумма расстояний до других точек наименьшая #1
Пользователь вводит координаты точек.
Как найти точку, сумма расстояний до других точек наименьшая?

Добавлено через 29 минут
Никто не знает?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.12.2011, 20:56     Найти точку, у которой сумма расстояний до других точек наименьшая
Посмотрите здесь:

C++ надо программу, в которой задача состоит в том, чтобы найти точку на двумерной сетке
C++ Вывести индекс строки сумма элементов которой отличается менее других от суммы элементов векторов
найти такую точку заданного на плоскости множества точек, сумма расстояний от которой до остальных минимальна. C++
C++ [C++] найти точку на плоскости сумма расстояний от которой до остальных точек множества максимальна.
Найти точку, расстояние от которой до начала координат минимальное C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
28.12.2011, 20:58     Найти точку, у которой сумма расстояний до других точек наименьшая #2
C++
1
2
for (int i=0; i<n; ++i)
for (int j=0; j<n; ++i)
находите во 2 цикле сумму расстояний до точек, затем смотрите меньше ли сумма текущей, если так то запоминайте точку.
b0n4b
2 / 2 / 0
Регистрация: 16.11.2011
Сообщений: 100
29.12.2011, 00:31  [ТС]     Найти точку, у которой сумма расстояний до других точек наименьшая #3
А можно поподробней?
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
29.12.2011, 00:40     Найти точку, у которой сумма расстояний до других точек наименьшая #4
Цикл в цикле, от каждой точки до каждой расстояние суммируйте.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
29.12.2011, 05:59     Найти точку, у которой сумма расстояний до других точек наименьшая #5
Я бы сделал немного по другому:
заводим массив double b[n], все значения обнуляем.
Потом:
C++
1
2
3
4
5
6
7
for (int i=0; i<n-1; ++i)
    for (int j=i+1; j<n; ++j)
    {
        double rast// вычисляем расстояние от точки i до точки j и присваиваем это значение переменной rast 
        b[i]+=rast;
        b[j]+=rast;
    }
По окончании ищем минимальное значение в b[] - индекс этого знаения и есть ответ.
Байт
 Аватар для Байт
13993 / 8824 / 1231
Регистрация: 24.12.2010
Сообщений: 15,990
04.01.2016, 14:41     Найти точку, у которой сумма расстояний до других точек наименьшая #6
Связанная тема
Найти такую точку заданного на плоскости множества точек, сумма расстояний от которой до остальных минимальна

Добавлено через 6 минут
C++
1
2
3
4
5
6
7
8
9
10
11
int im = 0;
for (int i=0; i<n; ++i) {
    for (int j=i+1; j<n; ++j)
    {
        double rast// вычисляем расстояние от точки i до точки j и присваиваем это значение переменной rast 
        b[i]+=rast;
        b[j]+=rast;
        if (b[i] > b[im] || b[j] > b[im]) break;
    }
    if (i==0 || b[i] < b[im]) im = i;
}
Если ничего не перепутал...
Yandex
Объявления
04.01.2016, 14:41     Найти точку, у которой сумма расстояний до других точек наименьшая
Ответ Создать тему
Опции темы

Текущее время: 03:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru