2016-07-30 7 views
-2

10 진수를 2 진수 형식으로 변환하려고하지만 여전히 거리 정보를 유지하려고합니다. 유클리드 공간에서 10-2 = 8과 같은 이진 경우, 해밍 (1010-0010) = 1, 분명히 거리 정보가 많이 손실되었습니다. 10을 이진 형식으로 변환 할 수있는 가능한 방법이 있습니까? 그러나 해밍 거리 메트릭에서 거리 속성을 계속 유지합니까? 순진한 방법은 해밍입니다 (1111111111-0000000011) = 8 ...십진수를 이진 형식으로 변환하지만 거리 속성을 유지하는 방법은 무엇입니까?

+1

이진수로 변환하면 정보가 손실되지 않았습니다. 1010 - 0010은 여전히 ​​1000입니다. 숫자 값 대신 1000의 popcount를 계산하여 정보를 잃었습니다. – Hurkyl

답변

0

d(x,y) = |x-y|의 비 음수 정수의 미터 공간에서 기본적으로 유일한 거리 보존 맵은 다음과 같은 비트 벡터의 미터 공간에 해당합니다. 해밍 거리.

d(x,0) = x이므로 x의 변환에 x 비트가 설정되어 있어야합니다. 마찬가지로 x<y 인 경우 x의 변환에 설정된 비트는 y의 변환에서 설정된 비트의 서브 세트 여야합니다.

그래서 여러분이 만든 것은 기본적으로 비트 벡터와 해밍 거리의 공간에서 작업해야하는 유일한 옵션입니다.

+0

답장을 보내 주셔서 감사합니다. 실제로 정보를 잃지 않고 변환하는 최선의 방법이라고 생각합니다. 나는 약간의 거리를 잃을 수 있다고 생각하지만, 아마도 더 좋은 코딩 방법을 찾으려고 노력할 것이다. 고맙습니다. –

+0

@Hx : 만약 당신이 이것을 수행함으로써 어떤 프로그래밍 문제를 해결하려했는지에 대한 별도의 질문으로 생각한다면, 당신은 유용한 반응을 얻을 것이라고 생각합니다. – Hurkyl