2017-01-16 3 views
0
どのように効率的にそのオブジェクトがある集​​合Bから最も近い 一意オブジェクトと集合A内のオブジェクトをペアリングすることができます...私は(クラスAおよびBの)オブジェクトの上記二組を有すると仮定

enter image description here最も近い距離に基づいてオブジェクトの2つのセットをペアにする最も効率的な方法は?

他のどのオブジェクトにも近くない

両方のセットのオブジェクトは、2Dベクトルを使用してその位置を表します。

+0

Bの最も近いオブジェクトから、AからのオブジェクトへのオブジェクトがAからの別のオブジェクトに近い場合はどうなりますか?したがって、* a1 *に最も近いBは* b1 *ですが、* b1 *に最も近いAは* a2 *ですか? – jaggedSpire

+0

@jaggedSpire:* a2 *は* b1とペアになります* – sookie

+0

そして* a1 *は何もペアになりませんか? – jaggedSpire

答えて

0

2Dリストをプロキシミティで配置する方法の1つは、基本的にnビットの各(x、y)座標の完全なビットシャッフルを1つのインターリーブされた2nビット値にするエントリーをPeanoでエンコードすることです。 (私は最初に米国国勢調査の道地図とTIGERデータについて1984年を読んでこのスキームを学んだ。)

例:(x、y)=(0,0_0_0、_1_1_0_1)、 次にPeano 、y)は01110001 = 71です。

このビットシャッフルは、並べ替えられたときに1つの数字行に沿って2D近接を表す数字のリストをもたらします。これは、Peanoの値A、B、CについてA < B < CはBがAとCで囲まれた2次元矩形内にあることを示しています。

単なる考えであり、必要でないかもしれませんまったく。がんばろう。

+0

オブジェクトの位置が浮動小数点数を使って表されているので、これがどれだけ適用可能かはわかりません。また、これはリアルタイムアプリケーションなので、私はエンコードのコストがどれくらいか分かりません。 – sookie

関連する問題