N次元の点の間の距離を決定します
-
19-09-2019 - |
質問
Iは、n次元の点をリストMySQLのテーブルを構築しています、各次元がインデックス付けされます。 n次元システム内の任意の点を考えると、私は、選択された点からの距離の順に出力他のポイントの全てにできるようにしたいと思います。
単純な解決策は、ピタゴラスの定理... SQRT(X ^ 2 + y ^ 2)= Zを使用して各点からの距離を計算することであろう。私は、より効率的な方法を模索しています。唯一のおおよその順序が必要なので、私は心の非常に開いているされます。
感謝します。
-diddle
解決
すなわち、(少なくとも精神的に)あなたの「マップ」上にグリッドを描き、彼らはに分類された広場に基づいてポイントを追跡 -
が与えられているものに加えて、あなたもあなたのポイントを「ビニング」考えることができます。基本的に、あなたは、同じ広場にポイントで開始し、その後選択したポイントの広場、ように、次の外側のリング、そして周囲の「リング」のもの。お使いのグリッドのサイズに応じて、あなたが好きなように、これは程度の正確または近似することができます。もちろん、2Dグリッドが2Dの点にある - 。より多くの次元を持っている場合、あなたが一致するように、グリッドの次元を増やす必要があります。
他のヒント
この種のもののための一般的な手法ではなく、平方根を排除し、実際の距離の二乗距離を考慮することである、しかし、私が正しく質問を理解していた場合、あなたはあなたからの実際の距離を取得する必要はありません。インデックス。その場合、あなただけの各成分の絶対値の合計を使用することができます。
所属していません StackOverflow