관련이 있지만 양의 정수 만 필요하며 정식 일 필요는 없습니다.
Cantor 페어링 기능은 이 Wikipedia 기사에 설명되어 있습니다. 본질적으로, 그것은 두 개의 값 X와 Y에 적용될 때, 결과가 주어진 원래의 값 X와 Y를 얻을 수있는 연산입니다.
당신의 임무는 두 가지 기능, 즉 수행하는 기능 X, Y -> Z
과 수행하는 기능을 설계 하는 것 Z -> X, Y
입니다. 캐치 X, Y -> Z
가 있습니다 : 반드시 정류해야합니다. 즉 Z -> X, Y
, 입력이 X, Y
또는 인지 여부를 확인할 수 없습니다 Y, X
.
이 과제의 공식적인 정의는 다음과 같습니다.
셀 수있는 무한 세트의 숫자 S를 선택하십시오.
다음 작업을 수행하는 두 가지 기능을 설계하십시오.
- S에 정렬되지 않은 값 쌍이 주어지면 S에 값을 반환
- 초기 함수의 반환 값이 주어지면 첫 번째 함수를 통과 할 때 입력 정수로 평가되는 정렬되지 않은 값 쌍을 반환합니다. 입력이 첫 번째 함수의 반환 값이 아닌 경우이 역 함수의 동작에 신경 쓰지 않습니다.
요구 사항
- 결과는 런간에 동일해야합니다.
{a, a}
순서가없는 쌍입니다
참고 : 증거를 제공하면 귀하의 답변이 나에게서 투표를받을 가능성이 높지만, 그것이 도착하면 답변을 테스트하고 제대로 작동한다고 확신하면 투표합니다.
1,2
쌍 중 하나가 언제 1,3
잠재적 쌍이 될 수 1
있습니까?
f
그 역 g
, sorted((x, y))
동일해야sorted(g(f(x, y)))