4

2D 空間 (x i , y i ) の座標のリストがあります。他の指定された座標との距離が最小になるような座標 (X, Y) を見つけるにはどうすればよいですか? (X, Y) を解く数式はありますか?

例を挙げましょう..座標のリストがあるとしましょう (0,0);(1,0);(0,1);(-1,0);(0,-1); ここで、結果の座標がすべてのポイントから最小距離になるように、可能な座標(1つまたは複数)を見つける必要があります。この場合 (0,0)。

Vooが言ったように、これは私の要件です: 特定のセット内のポイントまでの距離の合計を最小化するポイントを見つけます

4

4 に答える 4

2

特定のポイントに最も近い候補を求めていると仮定します

最近隣検索について質問しています。

最も単純なアプローチは、すべての候補座標を単純にループし、ユークリッド距離を計算し (ユークリッド メトリックが必要であると仮定して)、最小値を追跡することです。それで十分ですか?

より複雑な (ただし潜在的に高速な) アプローチでは、候補点を空間分割ツリー、たとえば四分木、kd-木、または他のいくつかのバリアントの 1 つに格納する必要があります。

于 2012-05-09T13:43:42.957 に答える
1
public Coord2D minDistance(List<Coord2D> coordinates, Coord2D someCoord) {
   float minDistance = Float.MAX_VALUE;
   Coord2D result;
   for (Coord2D coord : coordinates) {
       float distance = Math.sqrt(Math.pow((coord.x - someCoord.x), 2) + (Math.pow((coord.y - someCoord.y), 2))
       if (distance < result) { 
           result = coord;
           minDistance = distance;
       }
   }

   return result;
}
于 2012-05-09T13:45:08.010 に答える
1

要件: 与えられたセット内の点までの距離の合計を最小にする点を見つけます。

他のすべての点とのユークリッド距離の合計が最小の点は次のとおりです。

x = セット内のすべての X の平均
平均 y = セット内のすべての Y の平均平均

于 2012-05-24T14:37:30.910 に答える
0

ユークリッド距離の式を使用して2点間の距離を計算できます:squareroot((x1-X)²+(yi-Y)²)またはマンハッタンの式を使用できます:| yi-Y | + |xi-X|。

これはパスファインディングの問題ですか?

于 2012-05-09T13:42:41.657 に答える