Encoding 如何将十进制数转换为二进制形式,但仍保持距离特性?

Encoding 如何将十进制数转换为二进制形式,但仍保持距离特性?,encoding,data-compression,quantization,Encoding,Data Compression,Quantization,我试图将十进制数转换成二进制形式,但仍然保留距离信息。例如,在欧几里德空间中10-2=8,但在二进制情况下,hamming(1010-0010)=1,显然距离信息丢失了很多。有没有可能将10转换为二进制形式,但仍保留汉明距离度量中的距离属性?简单的方法是hamming(1111111111-00000000 11)=8….你已经找到了从距离d(x,y)=| x-y |的非负整数的度量空间到具有hamming距离的位向量的度量空间基本上唯一保持距离的映射 这不难证明:d(x,0)=x,因此x的变换

我试图将十进制数转换成二进制形式,但仍然保留距离信息。例如,在欧几里德空间中10-2=8,但在二进制情况下,hamming(1010-0010)=1,显然距离信息丢失了很多。有没有可能将10转换为二进制形式,但仍保留汉明距离度量中的距离属性?简单的方法是hamming(1111111111-00000000 11)=8….

你已经找到了从距离
d(x,y)=| x-y |
的非负整数的度量空间到具有hamming距离的位向量的度量空间基本上唯一保持距离的映射


这不难证明:
d(x,0)=x
,因此
x
的变换必须设置
x
位。类似地,如果xYou没有因为转换为二进制而丢失信息:1010-0010仍然是1000。由于您决定计算popcount 1000而不是使用其数值,因此丢失了信息。感谢您的回复,实际上我认为这可能是在不丢失任何信息的情况下进行转换的最佳方式。我想我可以接受一点距离损失,也许,但我会尝试找到一个更好的编码方式。非常感谢。@Hx:我想如果你单独提出一个问题,你想通过这样做解决什么编程问题,你会得到有用的回答。