Размышляя над проблемой, я считаю, что вам нужно рассчитать расстояние от каждой точки до любой другой точки, чтобы узнать, какая из них ближе всего.Таким образом, вам нужно эффективно иметь сетку NxN для N точек, не так ли?
Затем, когда у вас есть расстояние от Nsubn до любого другого Nsubn, вам нужен метод ранжирования, чтобы уменьшить полученную матрицу в виде линейной алгебры,нет?
Я предполагаю, что она сводится к матрице, подобной этой:
A {1,1,1}
B {3,3,3}
C {5,5,5}
И поскольку расстояние между каждым из них должно быть квадратным корнем из 12, то у вас будетМатрица выглядит следующим образом:
A B C
A 0 sqrt(12) sqrt(48)
B sqrt(12) 0 sqrt(12)
C sqrt(48) sqrt(12) 0
Так как это верхняя и нижняя диагонали, вы можете устранить половину сетки и решить другую половину ... На этом этапе это должна быть решаемая проблема, не так ли?
Для справки приведем другой пример:
см. Также: http://www.wolframalpha.com/input/?i=distance+between+(5,1,3)+and+(3,5,1)
A {1,3,5}
B {5,1,3}
C {3,5,1}
Тогда у вас будет матрица, подобная этой:
A B C
A 0 sqrt(24) sqrt(24)
B sqrt(24) 0 sqrt(24)
C sqrt(24) sqrt(24) 0
и это говорит нам, что все точки равноудалены друг от друга.
Или я ушел далеко в левое поле на этом?Что я пропустил?