2016-07-30 5 views
-2

10進数をバイナリ形式に変換しようとしていますが、距離情報は保持しています。そのような10-2 = 8ユークリッド空間では、バイナリの場合、ハミング(1010-0010)= 1、明らかに距離情報が多く失われます。 10をバイナリ形式に変換する可能性のある方法はありますか?ハミング距離メトリックで距離プロパティを維持しますか?素朴な方法はハミングです(1111111111-0000000011)= 8 ...10進数をバイナリ形式に変換するが、距離プロパティを維持するにはどうすればよいですか?

+1

バイナリに変換すると情報が失われませんでした.1010 - 0010はまだ1000です。数値を使用するのではなく、1000のポップカウントを計算することによって情報を失いました。 – Hurkyl

答えて

0

距離がd(x,y) = |x-y|の非負整数のメトリックスペースから基本的には距離保存マップが見つかりましたハミング距離。

d(x,0) = xこれは証明するのが難しくないので、xの変換はxビットを設定する必要があります。同様に、x<yの場合、xの変換で設定されたビットは、yの変換で設定されたビットのサブセットでなければなりません。

だから、あなたが本当に本当にビットベクトルとハミング距離の空間で作業しなければならないのなら、基本的にはあなたの唯一のオプションです。

+0

あなたの返事をありがとう、実際に私は情報を失うことなく変換する最善の方法かもしれないと思った。私は少し距離を失うことを受け入れることができると思う、多分、私はそれのためのより良いコーディング方法を見つけることを試みる。どうもありがとうございました。 –

+0

@Hx:これを行うことでどのようなプログラミング問題が解決しようとしていたのかを別の質問として考えると、役に立つ回答が得られると思います。 – Hurkyl

関連する問題