Isso faz parte de um desafio de policiais e ladrões . Vá aqui para a parte dos ladrões.
O desafio da polícia
Você deve escrever um programa ou função em um idioma de sua escolha, que produza a string Haystack
. No entanto, deve ser possível remover alguns subconjuntos de caracteres do seu programa (sem reordenar o restante), de modo que a sequência resultante também seja um programa válido no mesmo idioma, que será impresso Needle
. Ambos os programas / funções podem opcionalmente imprimir uma única nova linha à direita (independentemente uma da outra), mas nada mais. A saída diferencia maiúsculas de minúsculas e deve seguir a caixa exata fornecida.
Seu objetivo, é claro, é esconder a "agulha" muito bem. Mas observe que seu envio pode ser quebrado com qualquer solução válida, não apenas a que você pretendia.
Por favor inclua na sua resposta:
- O idioma (e versão, se relevante) do seu envio.
- O tamanho do programa Haystack em bytes.
- O próprio programa Haystack.
- O método de saída, se não for STDOUT.
- Se possível, um link para um intérprete / compilador on-line para o idioma escolhido.
Seu envio pode ser um programa ou função, mas não um trecho e você não deve assumir um ambiente REPL. Você não deve receber nenhuma entrada e pode enviar via STDOUT, valor de retorno da função ou parâmetro de função (saída).
Ambos os programas / funções precisam ser concluídos em 5 segundos em uma máquina de mesa razoável e precisam ser determinísticos. Você não deve usar built-ins para hash, criptografia ou geração de números aleatórios (mesmo que você propague o gerador de números aleatórios para um valor fixo).
No interesse da justiça, deve haver um intérprete ou compilador disponível gratuitamente para o idioma escolhido.
Uma resposta será quebrada se o programa Needle for encontrado. Se sua resposta não tiver sido respondida por 7 dias, você poderá revelar o programa de agulhas pretendido na sua resposta, o que torna sua submissão segura. Contanto que você não revele sua solução, ela ainda poderá ser quebrada por ladrões, mesmo que os sete dias já tenham passado. O programa mais curto e seguro do Haystack (medido em bytes) vence.
Exemplos
Aqui estão alguns exemplos simples em diferentes idiomas:
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]
Observe que o subconjunto de caracteres removidos não precisa ser contíguo.
Envios sem rachaduras
<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>