2014-11-03 2 views
0

32 비트 이하로 고유하게 표시해야하는 99,999 비트 플래그가 있습니다. 모든 비트를 설정할 수 있으며 설정 비트가 비교 가능한 비트 세트와 다른지 알아야합니다. 고유 한 값 해시를 저장하기 위해 CRC를 사용하는 것을 고려하고 있지만 충돌이 문제가되는지 확실하지 않습니다. 이상적으로는 500 비트 미만의 비트가 주어진 시간에 설정되지만, 미리 알 수는 없습니다.99,999 비트를 바이트, 워드 또는 더블 워드로 고유하게 표현하는 방법

이러한 비트를 고유하게 나타 내기 위해 해시 또는 다른 알고리즘이 있습니까?

+0

당신이 원하는 것은 할 수 없습니다. http://en.wikipedia.org/wiki/Pigeonhole_principle을 참조하십시오. –

+0

나는 이미 99,999 비트를 모두 저장하고 있습니다. 이것은 두 개의 서로 다른 시스템에서 수행됩니다. 나는 대표 값 (해시를 반대로)에서 비트를 재조합 할 필요가 없습니다. 두 개의 대표 값을 비교하여 두 세트의 전체 비트가 동일한 지 여부를 결정할 수 있어야합니다. – Psyfun

+0

또한 무손실 압축을 고려합니다. 대부분의 비트가 0으로 설정되면 압축은 상당히 효율적이어야합니다. 전체 비트 세트를 나타내는 데 필요한 저장 영역의 전제 조건을 변경해야 할 수도 있습니다. – Psyfun

답변

4

NO!

특정 조합이 불가능하다는 것을 식별하는 비트 플래그에 대한 다른 정보가 없으면이 작업을 수행 할 수 없습니다. 모든 조합이 가능하면 99,999 비트를 사용하여 99,999 비트 플래그를 저장해야합니다.

편집 :이 네트워크 사용량을 줄일 수 있고 기대 비트의 약 500, 사용할 수있는 기술이 있습니다 설정되어 있는지하지만 아무도 간단한 해시 없는지 배경 정보를 바탕으로

32 비트로 저장할만큼 효율적입니다. 나는 Arithmetic Coding을보고 시작할 것입니다. 이것은 데이터를 압축하기 위해 보낼 문자의 확률 분포 (0.5 % 1, 99.5 % 0)를 사용합니다. 필자의 계산에 따르면 약 22 배의 압축을 기대할 수 있습니다. 그러나 드문 것으로 간주되는 신호의 경우 99,999 비트보다 큰 신호를 전송해야하므로 가격을 지불하게됩니다.

+0

질문에 대한 의견보기 모든 비트가 저장됩니다. 평등을 위해 두 세트를 비교할 필요가 있습니다. – Psyfun

+2

그건 중요하지 않습니다. 99,999 비트를 사용하고 32 비트를 제공하는 해시는 수백만 비트 조합을 동일한 수로 매핑합니다. 이 일을 통해 무엇을 성취하려고합니까? 우리는이 해시없이 실행 가능한 대체 솔루션을 제공 할 수 있습니다. – Degustaf

+0

네트워크를 통해 99,999 비트를 모두 보내지 않으려합니다. 비교가 필요한 대표 값을 전송하여 동기화가 필요한지 확인하십시오. 위에서 언급했듯이 압축 된 비트 수를 줄이기 위해 압축을 사용하고 있습니다. 그것은 대표 값의 크기에 대한 원래의 요구 사항을 변경합니다. 확률이 낮아서 두 세트가 합리적으로 같은 세트를 나타내는 경우 충돌을 기꺼이 받아 들였습니다. 변경 사항이 점진적으로 증가함에 따라 두 세트가 크게 다를 수 없습니다. – Psyfun

관련 문제