Frage

Ich baue eine mySQL Tabelle mit Punkten in n-Dimensionen, jede Dimension indiziert. In Anbetracht jeder Punkt im n-dimensionalen System würde Ich mag die Ausgabe alle anderen Punkte in der Reihenfolge ihrer Entfernung zu können, von dem gewählten Punkt.

Eine einfache Lösung zu berechnen Entfernungen von jedem Punkt wäre, unter Verwendung des Satzes von Pythagoras ... sqrt (x ^ 2 + y ^ 2) = z. Ich habe eine effizientere Methode gesucht,. Nur eine ungefähre benötigt wird, so dass ich sehr offen bin.

Danke.

-diddle

War es hilfreich?

Lösung

Zusammen mit dem, was gegeben worden ist, könnte man auch als „Binning“ Ihre Punkte beachten - das heißt (zumindest mental) ein Gitter über Ihre „Karte“ zeichnen und verfolgt Punkte basierend auf dem Platz in sie fallen. Grundsätzlich beginnen Sie mit den Punkten in dem gleichen Platz, dann die, die in einem „Ring“ rund um den Platz des gewählten Punktes, dann ist der nächste Ring nach außen, und so weiter. Je nach Größe des Rasters Sie verwenden, können Sie dies über so genau machen oder nähern, wie Sie möchten. Natürlich ist ein 2D-Gitter 2D-Punkte für - wenn mehr Dimensionen haben, werden Sie die Dimensionalität des Gitters erhöhen müssen übereinstimmen

.

Andere Tipps

Eine übliche Technik für diese Art der Sache ist der quadratischen Abstand statt der tatsächlichen Entfernung zu betrachten, die die Quadratwurzel beseitigt, aber, wenn ich die Frage richtig bin zu verstehen, müssen Sie nicht die tatsächliche Entfernung zum Abrufen von Ihrem Index. In diesem Fall könnten Sie einfach die Summe des Absolutwertes jede Komponente verwendet werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top