이 도전 과제를 게시하기 전에 사양을 확정하는 데 도움을 주신 Step Hen , Wheat-Wizard 및 Dennis 사용자에게 감사 합니다!
이것은 강도의 실입니다! 경찰의 실은 여기로
이 과제 에서는 언어가 더 이상 프로그래밍 언어라는 기준을 충족시키지 못하도록 코드를 실행해야합니다. 그 도전에서, 그것은 언어가 더 이상 할 수 없도록 만드는 것을 의미합니다 ...
숫자 입력 및 출력
두 숫자를 더해라
특정 숫자가 소수인지 테스트합니다.
이것은 두 가지 다른 목표를 가진 두 가지 도전 이있는 경찰과 강도 도전입니다 : 경찰 은 언어를 거의 사용할 수 없게 만드는 코드를 작성하려고 시도 하며 강도 는 경찰을 허용하는 숨겨진 해결 방법을 찾습니다. 그들의 언어를 회복하기 위해.
경찰은 두 가지 코드 스 니펫을 작성합니다.
입력 / 출력 및 수치 연산을위한 내장 함수를 제거하여 언어를 거의 사용할 수없는 언어. 이 코드는 충돌하거나 종료 할 수 없습니다 . 이 스 니펫 끝에 코드를 추가 할 수 있어야하며 해당 코드 가 평가 됩니다. 과
두 개의 숫자를 입력으로 사용하여 코드를 더한 다음 합계를 출력하는 코드 조각입니다. 이 스 니펫은 첫 번째 스 니펫을 실행 한 후에도 여전히 올바르게 작동해야합니다. 두 스 니펫이 결합되면 두 개의 숫자를 추가하는 전체 프로그램을 구성하거나 두 개의 숫자를 추가하는 함수를 정의해야합니다. 이 스 니펫은 모호한 동작에 의존하고 찾기 어려울 것입니다.
경찰은 또한 표준 입 / 출력 방법을 선택할 것 입니다. 그러나 사용중인 형식 (입력 및 출력)을 정확하게 나타내야합니다. 답을 해독하려면 동일한 입력 / 출력 형식을 따라야합니다. 그렇지 않으면 균열이 계산되지 않습니다.
경찰의 답변은 항상 공개합니다
첫 번째 스 니펫 (두 번째는 아님).
언어 (마이너 버전 포함, 대부분의 제출물은 이상한 대소 문자를 사용하므로)
함수인지 전체 프로그램인지를 포함한 IO 형식. 강도 는 유효한 균열이되도록 동일한 형식을 사용해야합니다.
그들의 대답이 작동하는 데 필요한 이상한 경우. 예를 들어, Linux에서만 실행 되거나 인터넷 연결이 필요합니다 .
강도는 경찰의 제출물 중 하나를보고 해킹을 시도해야합니다. 스 니펫 2로 작동 할 수 있는 유효한 스 니펫을 작성 하여 언어를 사용할 수 있습니다 (언어를 거의 사용할 수 없게 된 후 두 숫자를 더함). 경찰이 처음 작성한 것과 동일한 스니 펫일 필요 는 없습니다 . 답변이 깨지면 코드를이 스레드에 답변으로 게시하고 경찰 답변에 대한 주석으로 답변 링크를 게시하십시오. 그런 다음 해당 게시물이 수정되었음을 표시하도록 편집됩니다.
다음은 예입니다. 첫 번째 스 니펫의 경우 다음 Python 3 프로그램을 경찰 답변으로 볼 수 있습니다.
파이썬 3
print=None
STDIN에서 입력을 받아 STDOUT으로 출력
유효한 두 번째 스 니펫은
import sys
a,b=int(input()),int(input())
sys.stdout.write(a+b)
이것은 두 숫자를 입력으로 취하고 두 스 니펫을 함께 결합하더라도 합계를 출력하기 때문에 유효합니다.
print=None
import sys
a,b=int(input()),int(input())
sys.stdout.write(a+b)
이것은 그들의 대답에 유효한 균열입니다.
경찰의 답변이 일주일 내내 크랙되지 않은 경우, 두 번째 스 니펫에서 편집하여 자신의 답변이 안전하다고 표시 할 수 있습니다 . 안전하도록 편집 한 후에는 더 이상 크래킹을 시도하지 않을 수 있습니다. 그들이 안전하다고 편집하지 않으면, 그들이 할 때까지 계속 크래킹을 시도 할 수 있습니다.
강도 스레드의 승자는 가장 큰 답을 얻은 사용자이며, 타이 브레이커는 N 개의 균열에 도달 한 시간 입니다. (따라서 두 명의 다른 사용자가 각각 5 개의 균열을 가지고 있다면, 5 번째 균열을 먼저 게시 한 사용자가 승자가됩니다.) 충분한 시간이 지난 후, 나는 가장 많은 표를 얻은 승자의 대답을 받아들입니다.
즐기세요!
규칙 설명
첫 번째 스 니펫은 입력하지 않고 올바르게 실행해야합니다 . 원하는대로 출력 할 수 있으며이 출력은 무시됩니다. 스 니펫이 완료된 후에는 두 번째 스 니펫이 올바르게 실행됩니다.
답변이 유효 하려면 두 번째 스 니펫 이 실제로 실행 되어야합니다. 이것은 다음과 같은 대답을 의미합니다
import sys sys.exit()
언어를 위반하지 않기 때문에 유효하지 않습니다. 단순히 종료됩니다.
안전을 유지 한 후 점수는 두 스 니펫 의 바이트 수 입니다 .
이것은 다시가는 일에 당신의 대답에 필요한 이상한 가장자리 사례를 보여주세요 ... 당신의 제출은 충분한 정보를 포함해야합니다 전에 존재가 재현 될 밝혀 후에 공개된다. 이것은 귀하의 답변이 안전 해지면 다음에서 편집하는 경우를 의미합니다. 여기 내 답변이 있습니다. 아, BTW 이것은 솔라리스에서 실행할 때만 작동합니다. 귀하의 답변이 유효하지 않으며 삭제되며 당첨 될 자격이없는 것으로 간주됩니다.
합계를 출력 한 후 두 번째 스 니펫이 중단 될 수 있습니다. 출력이 여전히 올바른 한 (예를 들어, STDERR로 출력하도록 선택한 후 많은 충돌 정보를 얻는 경우 이는 유효하지 않습니다)
리더 보드
다음은 점수와 이름 (알파벳) 순으로 하나 이상의 균열이있는 모든 사용자의 목록입니다. 균열을 제출하면 그에 따라 점수를 업데이트하십시오.
#User #Score
Ilmari Karonen 8
Dennis 5
Olivier Grégoire 4
Sisyphus 3
Veedrac 3
Arnold Palmer 2
Bruce Forte 2
DJMcMayhem 2
Dom Hastings 2
ppperry 2
1bluston 1
2012rcampion 1
Ben 1
BlackCap 1
Christian Sievers 1
Cody Gray 1
HyperNeutrino 1
Joshua 1
Kaz 1
Mark 1
Mayube 1
Xnor 1
zbw 1
SecurityManager
범위 내에 있는 것을 찾을 수 없었습니다 ...System.in
하지만 아직 닫히지 않았기 때문에이 시점에서 읽을 수도 있습니다 .