당신은 단순히 문자가 누락하고 당신의 결과를 수정하려고셔서 될 수있는 가능한 위치를 순환에 의해 작동하도록, 그래서 당신은 10 자받은 가정 해 봅시다 수 있습니다
1234567890
가가를 해결 적이을 다음 값 :
??1234567890
?1?234567890
?12?34567890
:
1??234567890
1?2?34567890
:
1234567890??
각 시도는 대부분 당신이 원하는 결과를 줄 것입니다. 그러나 최소한의 추가 수정으로 정확히 하나의 결과가 있어야하며, 올바른 답일 가능성이 가장 높은 것으로 사용해야합니다. 위의 예제의 처음 세 숫자를 수정하면
예를 들어, 다음과 같은 결과를 얻을 수 있습니다 : 첫 번째와 세 번째의 경우를 들어
v
361274567890
917234567890
312734569897
: ^^
을, 추가 수정은 두 채워 넘어 만든 두 번째 경우에는 누락 된 위치 만 채워지고 다른 문자는 정정되지 않은 입력과 일치하는 반면, 공백 (v 및 ^으로 표시됨)이 표시됩니다. 따라서 나는 대답 2를 가장 올바른 것으로 선택할 것입니다.
분명히이 문제는 다른 오류가 있는지 여부에 달려 있습니다. 불행히도 나는이 방법이 확실하게 작동 할 수있는 엄격한 조건을 제공 할 수는 없습니다.
.
메시지가 길면 할 수있는 또 다른 일은 인터리빙 기법을 사용하여 기본적으로 여러 개의 직교 RS 코드가 데이터를 처리하도록하는 것입니다. 그렇게하면 하나가 실패하면 다른 것으로 복구 할 수 있습니다. 이 방법은 예를 들어 CD (CIRC)에 사용됩니다.
RS는 "결정할 수 없다"는 것을 알고 있습니까? 그렇다면 RS는 그것이 놓일 가능성이있는 각 바이트 위치에 0 또는 0xFF를 넣고 다시 "결정할 수있는"상태가 될 때까지 다시 시도하려고합니다. – user21293