Đây là một phần của thử thách cảnh sát và cướp . Tới đây cho phần của bọn cướp.
Thử thách của cảnh sát
Bạn nên viết một chương trình hoặc hàm bằng ngôn ngữ bạn chọn, đầu ra chuỗi Haystack
. Tuy nhiên, phải có thể xóa một số tập hợp con các ký tự khỏi chương trình của bạn (không sắp xếp lại phần còn lại), sao cho chuỗi kết quả cũng là một chương trình hợp lệ trong cùng ngôn ngữ, in ra Needle
thay thế. Cả hai chương trình / chức năng có thể tùy ý in một dòng mới duy nhất (độc lập với nhau), nhưng không có gì khác. Đầu ra là trường hợp nhạy cảm và phải tuân theo vỏ chính xác được cung cấp.
Mục tiêu của bạn, tất nhiên, là để che giấu "kim" rất tốt. Nhưng lưu ý rằng trình của bạn có thể bị bẻ khóa với bất kỳ giải pháp hợp lệ nào , không chỉ là giải pháp bạn dự định.
Vui lòng bao gồm trong câu trả lời của bạn:
- Ngôn ngữ (và phiên bản nếu có liên quan) trong bài đăng của bạn.
- Kích thước của chương trình Haystack tính bằng byte.
- Chương trình Haystack chính nó.
- Phương thức đầu ra nếu nó không STDOUT.
- Nếu có thể, một liên kết đến một trình thông dịch / trình biên dịch trực tuyến cho ngôn ngữ bạn đã chọn.
Nội dung gửi của bạn có thể là chương trình hoặc chức năng, nhưng không phải là đoạn trích và bạn không được thừa nhận môi trường REPL. Bạn không được nhận bất kỳ đầu vào nào và bạn có thể xuất qua STDOUT, tham số trả về hàm hoặc tham số hàm (out).
Cả hai chương trình / chức năng phải hoàn thành trong vòng 5 giây trên một máy tính để bàn hợp lý và cần phải có tính quyết định. Bạn không được sử dụng các hàm dựng sẵn để băm, mã hóa hoặc tạo số ngẫu nhiên (ngay cả khi bạn chọn trình tạo số ngẫu nhiên cho một giá trị cố định).
Vì lợi ích của sự công bằng, phải có một trình thông dịch hoặc trình biên dịch có sẵn miễn phí cho ngôn ngữ bạn chọn.
Một câu trả lời bị bẻ khóa nếu chương trình Kim được tìm thấy. Nếu câu trả lời của bạn không bị bẻ khóa trong 7 ngày, bạn có thể tiết lộ chương trình Kim dự định trong câu trả lời của bạn, điều này làm cho bài nộp của bạn an toàn. Miễn là bạn không tiết lộ giải pháp của mình, nó vẫn có thể bị bọn cướp bẻ khóa, ngay cả khi 7 ngày đã trôi qua. Chương trình Haystack an toàn ngắn nhất (tính bằng byte) sẽ thắng.
Ví dụ
Dưới đây là một vài ví dụ đơn giản trong các ngôn ngữ khác nhau:
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]
Lưu ý rằng tập hợp con của các ký tự bị loại bỏ không phải tiếp giáp nhau.
Đệ trình không bị xáo trộn
<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>