Nächstgrössere Distanzvektoren finden
-
Es handelt sich nur um 2D-Vektoren mit integralen Komponenten.
Ich beginne bei (0, 0) und versuche dann, jeweils die nächst grösseren Distanzvektoren zu herumliegenden Positionen mit integralen Koordinaten zu finden. Dabei ist gibt es im Fall diagonal/horizontal/vertikal 4 Vektoren mit gleicher Länge, sonst 8.
Beispiele:
( 0, 0) -> Länge 0 ( 1, 0) -> Länge 1 (-1, 0) ( 0, 1) ( 0,-1) ( 1, 1) -> Länge 1.41 (-1, 1) ( 1,-1) (-1,-1) ( 2, 0) -> Länge 2 (-2, 0) ( 0, 2) ( 0,-2) ( 2, 1) -> Länge 2.24 (-2, 1) ( 2,-1) (-2,-1) ( 1, 2) (-1, 2) ( 1,-2) (-1,-2)
Ich persönlich hätte die möglichen Kombinationen erstellt und anschliessend alle nach Länge (bzw. dem Quadrat davon) sortiert. Zu beachten ist auch, dass das scheinbare "Muster" später nicht mehr vorliegt, z.B. ist (4, 4) länger als (5, 0).
Gibt es eventuell einen effizienteren Weg, diese Vektoren fortlaufend zu konstruieren?
-
Ich verstehe das so, dass du die ganzzahligen Gitterpunkte nach ihrem Abstand von (0,0) sortiert auflisten willst.
Migu schrieb:
Ich beginne bei (0, 0) und versuche dann, jeweils die nächst grösseren Distanzvektoren zu herumliegenden Positionen mit integralen Koordinaten zu finden. Dabei ist gibt es im Fall diagonal/horizontal/vertikal 4 Vektoren mit gleicher Länge, sonst 8.
Oder noch mehr, z.B. für den Abstand .
Ich persönlich hätte die möglichen Kombinationen erstellt und anschliessend alle nach Länge (bzw. dem Quadrat davon) sortiert.
Es genügt, das für ein 45°-Dreieck zu tun, also für (x,y) mit .
Gibt es eventuell einen effizienteren Weg, diese Vektoren fortlaufend zu konstruieren?
Vielleicht kann man irgendwie vom Rand der bisher gefundenen Fläche jeweils den nächsten Nachbarn in x und y-Richtung nehmen und nur die Abstände der so gefundenen Punkte untersuchen.