Это часть задачи полицейских и грабителей . Иди сюда за грабителями.
Вызов ментов
Вы должны написать программу или функцию на языке по вашему выбору, который выводит строку Haystack
. Однако должна быть возможность удалить некоторое подмножество символов из вашей программы (без переупорядочения остальных), чтобы полученная строка также была действительной программой на том же языке, которая печатает Needle
вместо этого. Обе программы / функции могут опционально печатать один завершающий символ новой строки (независимо друг от друга), но не более того. Вывод чувствителен к регистру и должен соответствовать точному предоставленному регистру.
Ваша цель, конечно, очень хорошо спрятать «иголку». Но обратите внимание, что ваша заявка может быть взломана любым действительным решением, а не только тем, которое вы намеревались.
Пожалуйста, включите в свой ответ:
- Язык (и версия, если применимо) вашей заявки.
- Размер программы Haystack в байтах.
- Сама программа Haystack.
- Метод вывода, если это не STDOUT.
- Если возможно, ссылка на онлайн переводчик / компилятор для выбранного вами языка.
Ваша заявка может быть либо программой, либо функцией, но не фрагментом, и вы не должны использовать среду REPL. Вы не должны принимать никаких входных данных, и вы можете вывести их через STDOUT, возвращаемое значение функции или параметр функции (out).
Обе программы / функции должны быть выполнены в течение 5 секунд на приемлемом настольном компьютере и должны быть детерминированными. Вы не должны использовать встроенные модули для хэширования, шифрования или генерации случайных чисел (даже если вы запрограммировали генератор случайных чисел на фиксированное значение).
В интересах справедливости, должен быть свободно доступный переводчик или компилятор для выбранного вами языка.
Ответ взломан, если программа Needle найдена. Если ваш ответ не был взломан в течение 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]
Обратите внимание, что подмножество удаленных символов не обязательно должно быть смежным.
Uncracked Материалы
<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>