Domanda

sto costruendo una tabella contenente i punti mySQL a n-dimensioni, ciascuna dimensione indicizzato. Dato un qualsiasi punto nel sistema n-dimensionale, vorrei essere in grado di emettere tutti gli altri punti in ordine di distanza dal punto prescelto.

Una soluzione semplice sarebbe quella di calcolare le distanze da ogni punto utilizzando il teorema di Pitagora ... sqrt (x ^ 2 + y ^ 2) = z. Ho cercato un metodo più efficiente. Solo è necessario un ordine approssimativo, quindi sono molto aperti.

Grazie.

-diddle

È stato utile?

Soluzione

Insieme a ciò che è stato dato, si potrebbe anche prendere in considerazione "binning" i tuoi punti - vale a dire (almeno mentalmente) disegnare una griglia sopra la "mappa", e monitorare i punti in base alle quali piazza in cui rientrano. In sostanza, si inizia con i punti nella stessa piazza, poi quelle di un "anello" intorno quadrato del punto scelto, quindi il successivo anello esterno, e così via. A seconda delle dimensioni della griglia si usa, si può fare questo quanto di più preciso o approssimativa come ti piace. Naturalmente, una griglia 2D è per i punti 2D -. Se abbia più dimensioni, si dovrà aumentare la dimensionalità della griglia per abbinare

Altri suggerimenti

Una tecnica comune per questo genere di cose è quello di considerare la distanza al quadrato invece della distanza effettiva che elimina la radice quadrata, ma, se mi sto capendo correttamente alla domanda, non è necessario per recuperare la distanza effettiva dal indice. In questo caso si potrebbe utilizzare la somma del valore assoluto di ogni componente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top