이것은 경찰과 강도 도전의 일부입니다 . 강도들을 위해 여기 로 가십시오 .
경찰의 도전
선택한 언어로 프로그램이나 함수를 작성해야 문자열이 출력 Haystack
됩니다. 그러나, 결과 문자열이되도록, 프로그램에서 (나머지를 재정렬없이) 일부 문자 집합을 제거 할 수 있어야한다 또한 인쇄 같은 언어에서 유효한 프로그램 Needle
대신이. 두 프로그램 / 함수 모두 선택적으로 단일 후행 줄 바꿈 (서로 독립적으로)을 인쇄 할 수 있지만 다른 것은 없습니다. 출력은 대소 문자를 구분하며 제공된 정확한 케이스를 따라야합니다.
물론 당신의 목표는 "바늘"을 잘 숨기는 것입니다. 그러나 제출 한 내용은 원하는 솔루션뿐만 아니라 유효한 솔루션 으로 도 금이 갈 수 있습니다.
답변에 포함하십시오 :
- 제출 한 언어 (및 관련되는 경우 버전)
- Haystack 프로그램의 크기 (바이트)입니다.
- Haystack 프로그램 자체.
- STDOUT이 아닌 경우 출력 방법.
- 가능하면 선택한 언어의 온라인 통역사 / 컴파일러에 대한 링크입니다.
제출은 프로그램 또는 기능 일 수 있지만 스 니펫은 아닐 수 있으며 REPL 환경을 가정해서는 안됩니다. 입력을하지 않아야하며 STDOUT, 함수 반환 값 또는 함수 (out) 매개 변수를 통해 출력 할 수 있습니다.
두 프로그램 / 기능 모두 합리적인 데스크탑 컴퓨터에서 5 초 이내에 완료되어야하며 결정적이어야합니다. 난수 생성기를 고정 된 값으로 시드하더라도 해시, 암호화 또는 난수 생성에 내장 기능을 사용해서는 안됩니다.
공정성을 위해 선택한 언어에 대한 무료 통역사 또는 컴파일러가 있어야합니다.
바늘 프로그램이 발견되면 답이 깨집니다. 답변이 7 일 동안 크랙되지 않은 경우 답변에 의도 된 바늘 프로그램이 공개되어 제출 내용이 안전해질 수 있습니다. 해결책을 밝히지 않는 한, 7 일이 지난 후에도 여전히 강도에 의해 금이 갈 수 있습니다. 가장 짧은 안전한 Haystack 프로그램 (바이트 단위로 측정)이 이깁니다.
예
다른 언어로 된 몇 가지 간단한 예는 다음과 같습니다.
Ruby
Haystack: puts 1>0?"Haystack":"Needle"
Delete: XXXXXXXXXXXXXXX
Needle: puts "Needle"
Python 2
Haystack: print "kcatsyaHeldeeN"[-7::-1]
Delete: XXXXXXXX XX
Needle: print "eldeeN"[::-1]
제거 된 문자의 하위 집합이 연속적 일 필요는 없습니다.
크랙되지 않은 제출
<script>site = 'meta.codegolf'; postID = 5686; isAnswer = false; QUESTION_ID = 144600;</script><script src='https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'></script><script>jQuery(function(){var u='https://api.stackexchange.com/2.2/';if(isAnswer)u+='answers/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJeRCD';else u+='questions/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJO6t)';jQuery.get(u,function(b){function d(s){return jQuery('<textarea>').html(s).text()};function r(l){return new RegExp('<pre class="snippet-code-'+l+'\\b[^>]*><code>([\\s\\S]*?)</code></pre>')};b=b.items[0].body;var j=r('js').exec(b),c=r('css').exec(b),h=r('html').exec(b);if(c!==null)jQuery('head').append(jQuery('<style>').text(d(c[1])));if (h!==null)jQuery('body').append(d(h[1]));if(j!==null)jQuery('body').append(jQuery('<script>').text(d(j[1])))})})</script>