На плоскости заданы 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) };
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д