Це частина виклику копів та грабіжників . Ідіть сюди за грабіжниками.
Виклик копів
Ви повинні написати програму або функцію на обраній вами мові, яка виводить рядок Haystack. Однак повинно бути можливість видалити деяку підмножину символів із вашої програми (не упорядковуючи решту), так що результуюча рядок також є дійсною програмою на тій же мові, яка друкує Needleзамість цього. Обидві програми / функції необов'язково можуть надрукувати один зворотний рядок (незалежно один від одного), але нічого іншого. Вихідні дані залежать від регістру і повинні відповідати точному корпусу.
Ваша мета, звичайно, дуже добре сховати «голку». Але зауважте, що ваше подання може зламати будь-яке дійсне рішення, а не лише те, що ви задумали.
Будь ласка, включіть у свою відповідь:
- Мова (та версія, якщо вона доречна) вашої заявки.
- Розмір програми сіна в байтах.
- Сама програма сіна.
- Метод виводу, якщо він не є STDOUT.
- Якщо можливо, посилання на онлайн-перекладача / упорядника для обраної вами мови.
Ваше повідомлення може бути або програмою, або функцією, але не фрагментом, і ви не повинні приймати середовище REPL. Ви не повинні приймати жодного вводу, і ви можете виводити через STDOUT, значення повернення функції або параметр функції (out).
Обидві програми / функції повинні виконатись протягом 5 секунд на розумному настільному верстаті і потребують детермінованості. Ви не повинні використовувати вбудовані модулі для хешування, шифрування чи генерації випадкових чисел (навіть якщо ви встановите генератор випадкових чисел до фіксованого значення).
В інтересах справедливості має бути вільно доступний перекладач або упорядник для обраної вами мови.
Якщо буде знайдена програма Needle, відповідь зламається. Якщо ваша відповідь не була взломана 7 днів, ви можете виявити у своїй відповіді передбачувану програму Needle, яка зробить ваше подання безпечним. Поки ви не розкриєте своє рішення, воно може все-таки зламатись грабіжниками, навіть якщо 7 днів вже минуло. Виграє найкоротша безпечна програма з сіна (вимірюється в байтах).
Приклади
Ось кілька простих прикладів на різних мовах:
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>