소개
당신은 새로운 기술 스타트 업 Dejavu의 비밀 계획을 훔치는 범죄자입니다. 뒷벽 너머로 몰래 들어가지만 문을 열려면 핀이 필요한 문을 찾으십시오. 잠금을 확인하고 0에서 4까지의 모든 숫자를 사용하여 5 자리 핀을 사용한다는 것을 알고 있습니다. 각 숫자를 입력 한 후 잠금은 마지막으로 입력 한 5 자리를 확인하고 코드가 올바른 경우 열립니다. 이 자물쇠를지나 쳐야합니다.
간단히 말해서 슈퍼 퍼뮤 테이션
순열은 특정 숫자 집합의 가능한 모든 조합입니다. 예를 들어, 숫자 0, 1, 2의 모든 순열은 다음과 같습니다.
012, 021, 102, 120, 201 및 210.
이러한 순열을 모두 연결하면 초 순열이 발생합니다.
012021102120201210
이 수퍼 퍼뮤 테이션에는 0, 1, 2의 모든 순열이 포함되지만 이보다 하나 더 짧게 만들 수 있습니다. 여기서는 조금 생략하지만이 숫자의 가장 짧은 초 치환은 다음과 같습니다.
012010210
우리의 의도와 목적을 위해, 이것은 본질적으로 해당 숫자의 가능한 모든 순열을 포함하는 가장 짧은 자릿수, 즉 초 순열입니다.
태스크
걱정할 두 자리가 더 있기 때문에 위의 그림과 같이 과잉 치환 예제보다 작업이 약간 어렵습니다. -당신이 초 순열에 대해 읽지 않았거나 위의 예가 약간 불분명 한 경우 Patrick Honner의 주제에 대해이 위대한 기사를 읽는 것이 좋습니다 (이 도전은 그의 기사에서 큰 영감을 얻었으므로 그에게 큰 도움이되었습니다). https://www.quantamagazine.org/unscrambling-the-hidden-secrets-of-superpermutations-20190116/ . 당신의 목표는 가능한 한 가장 짧은 프로그램을 작성하여 0에서 4까지의 숫자의 초 치환을 생성하는 것입니다.
채점
프로그램은 어떤 종류의 입력도 취하지 않으며 0에서 4까지의 숫자의 초 순환을 생성합니다.이 결과로 만들어진 초 순환은 콘솔에 인쇄되거나 선택한 언어에서 제공하는 범위까지 사용자에게 표시되어야합니다. 이것은 가능한 가장 짧은 순열 일 필요는 없으며, 유효한 초 순열이어야합니다. 이 때문에 목표는 초 순환이 가장 짧은 가장 짧은 프로그램을 작성하는 것이므로 다음과 같이 점수를 계산해야합니다.
파일 크기 (바이트) * 생성 된 초 치환 길이 (자리)
예를 들어, 내가 40 바이트 프로그램을 가지고 있고 슈퍼 퍼뮤 테이션의 길이가 153 자리이면 내 점수는 다음과 같습니다.
40 * 153 = 6120
항상 목표는이 점수를 가능한 한 낮추는 것입니다.
주형
답변을 게시하는 방법은 다음과 같습니다.
언어 | 점수
작업 환경에서 코드에 연결 (가능한 경우)
code snippet
코드 설명 등
결승
이것은이 사이트의 첫 번째 질문 중 하나입니다. 따라서 누락 된 것이 있거나 도전 과제의 일부가 확실하지 않은 경우 알려주십시오. 고마워요, 즐거운 골프 되세요!