На плоскости заданы 2n точек. Объединить их в пары так, чтобы сумма всех расстояний между точками была миниальной - C (СИ)

Узнай цену своей работы

Формулировка задачи:

На плоскости заданы 2n точек. Объединить их в пары так, чтобы сумма всех расстояний между точками была миниальной. Была такая идея алгоритма: Считаем сумму расстояний от каждой точки до всех остальных. Берем максимум из этих чисел, узнаем, к какой точке это относится, находим для этой точки ближайшую, соединяем их в пару. Далее берем сумму расстояний поменьше и проделываем то же самое. Иногда возникает проблема, что на одну точку приходится по несколько "ближайших". Кто что может подсказать или написать сам код, если есть возможность?

Решение задачи: «На плоскости заданы 2n точек. Объединить их в пары так, чтобы сумма всех расстояний между точками была миниальной»

textual
Листинг программы
const unsigned N = 8;
Point P[N] = {
    point(1.0, 9.0),
    point(1.0, 10.0),
    point(2.0, 9.0),
    point(2.0, 10.0),
    point(9.0, 1.0),
    point(9.0, 2.0),
    point(10.0, 1.0),
    point(10.0, 2.0)
};

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.5 из 5
Похожие ответы