문제

내가 만들어 알고리즘을 변환하는 진수 숫자로 영숫자 문자열을,하지만 지금은 제가 만들려는 역의 이 알고리즘이 있습니다.알고리즘에서 짧은 다음과 같습니다:

진수 자리%길이의 영숫자 문자 배열=에 인덱스 영숫자 문자 배열

예를 들어 알고리즘은 진수 숫자 4e (78 수),개조는 그것의 크기로 영숫자 문자 배열(크기: 62고),익 소수 16, 는 G.영숫자 문자 배열에서 이 예는 다음과 같이 구 다음과 같다:(0-9,A-Z,a-z).

에서 짧은 이 예로 작성되: (4e)78 % 62 = 16(G)

역의 이 알고리즘은 내가 무슨 희망을 달성하고 다양한 테스트,그것은 여러 결과가 발생할 수 있습니다,하지만 내가 궁극적인 목표가 끝난 뒤집을 수 있는 알고리즘,어디서,예를 들어,호 4e 변환된 편지 G 다음으로 다시 돌아 4e 때를 통해서 역 알고리즘이 있습니다.예제에서 개발 가능한 설명의 역 알고리즘:

가 있다고 가정한 모듈식.자 x 수 배당 y 수수 나누고 r 수은 나머지입니다. ry 은 주어진 곳에 r=16y=62.찾기 xx % y = rx % 62 = 16.

솔루션도:배당금 검색

배당지의 간격 [0, 255] 이후 한 쌍의 진수 숫자를 가질 수 있습의 최대값 ff, 는 255 에서 구분해서 사용하는 경우가 있습니다따라서,우리가 테스트 x 의해 모듈형 방정식까지 우리가 얻는 동등한 나머지,우리는 파생 수 있습 배당입니다.

그러나,이 솔루션은 결과에서 여러 가 x 값으로 인해 모듈로 동작의 원인이 감싸는 효과에 영숫자 배열이 의미하는 여러 값을 일으킬 수 있는 방정식을 지켜야 합니다.의 경우에 제공되를 들어,제안된 솔루션을 통해 다음과 같은 배당금: 16, 78, 140, 고 202.두 번째 배당은 올바른 하나는 하나의 결과는 알고리즘에는 되돌릴 수 있습니다.그러나 문제는 그것을 찾기 때문에,정확하지 않을 직접 알려진 시간에 실행하는 역 알고리즘이 있습니다.

에 어떤 도움을 고안 중 해결책을 제가 제안한 방법이나 다른 한 주시면 감사하겠습니다.감사합니다.

도움이 되었습니까?

해결책

나는 이 나의 문제이지만,방해가 되지 않습니다.이 솔루션을 포함한 고유의 절반으로의 출력 문자열입니다.이를 사용하여 하나는 단순히 계산 몫의 분할 x by y 고 사용하는 두 번째로 영숫자 문자를 형성합니다.에서 주를 들어,결과 G 가 될 것입 G1 기 때문에 모듈형 연산 관여 반복을 통해 영숫자 문자 배열이다.

이 알고리즘은 지금 다음과 같다: x % y = r + (x / y), 는 쉽게 뒤집을 수 있으로 bruteforcing 가능한 배당금 및 단순히 선택하여 올바른 하나에서 두 번째 문자로 숫자 쌍입니다.따라서,이를 수정한 알고리즘은 이제 가역적이었와 일하는 것을 입증하는 예제에서 주어진 원래 질문입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 cs.stackexchange
scroll top