Uma boa resolução para 2015 é viver de forma mais sustentável. Vamos começar pela reciclagem. Código de reciclagem, é isso!
Sua tarefa é imprimir o número 2015
em STDOUT, com ou sem nova linha (e somente isso). No entanto, você deve fazer isso reciclando algum código antigo do PPCG. Aqui está como isso funciona:
- Escolha qualquer resposta postada no CodeGolf.SE antes de 16/12/2014 00: 00: 00Z (o dia em que publiquei isso na sandbox). Exceção: Você não pode usar nenhuma resposta do desafio do ano novo do ano passado .
- Escolha um bloco de código dessa resposta (não um trecho de código embutido, ele deve ser um parágrafo próprio). Esse bloco deve ser anunciado como código real, por exemplo, você não pode usar casos de teste ou exemplo de saída que, por acaso, use formatação monoespaçada.
- Reorganize os caracteres nesse bloco de código para formar seu envio para esse desafio. Você só pode alterar a ordem, não adicionar ou remover caracteres. Isso inclui novas linhas.
- Você deve poder mostrar que o bloco de origem original é sintaticamente válido no seu idioma. Na melhor das hipóteses, você pode fazer isso mostrando que ele é executado sem erros de tempo de compilação ou de tempo de execução. Portanto, embora o código original possa ter sido Java, você pode usá-lo para uma resposta em espaço em branco (como todos os arquivos são válidos em espaço em branco), mas provavelmente não pode usá-lo para uma resposta em Python (pois o original não será uma sintaxe válida em Python) )
Observe que sua resposta deve ignorar todas as entradas e estados externos (incluindo a data atual real). Ele pode ler de STDIN, digamos, desde que ele não falhar se ele está vazio, e produz a mesma saída para todos os conteúdos possíveis do fluxo.
Seu código resultante deve ser um programa completo (não uma função nem um trecho que assuma um ambiente REPL).
Isso é código de golfe, então a resposta mais curta (em bytes ) vence.
Classificação
Tenho certeza de que isso ocorrerá de maneira muito diferente em diferentes idiomas. Portanto, o seguinte snippet de pilha gera uma classificação regular e uma visão geral dos vencedores por idioma.
Para garantir que sua resposta seja exibida, inicie-a com um título, usando o seguinte modelo de remarcação:
# Language Name, N bytes
onde N
está o tamanho do seu envio. Se você melhorar sua pontuação, poderá manter as pontuações antigas no título, identificando-as. Por exemplo:
# Ruby, <s>104</s> <s>101</s> 96 bytes
function answersUrl(e){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function getAnswers(){$.ajax({url:answersUrl(page++),method:"get",dataType:"jsonp",crossDomain:true,success:function(e){answers.push.apply(answers,e.items);if(e.has_more)getAnswers();else process()}})}function shouldHaveHeading(e){var t=false;var n=e.body_markdown.split("\n");try{t|=/^#/.test(e.body_markdown);t|=["-","="].indexOf(n[1][0])>-1;t&=LANGUAGE_REG.test(e.body_markdown)}catch(r){}return t}function shouldHaveScore(e){var t=false;try{t|=SIZE_REG.test(e.body_markdown.split("\n")[0])}catch(n){}return t}function getAuthorName(e){return e.owner.display_name}function process(){answers=answers.filter(shouldHaveScore).filter(shouldHaveHeading);answers.sort(function(e,t){var n=+(e.body_markdown.split("\n")[0].match(SIZE_REG)||[Infinity])[0],r=+(t.body_markdown.split("\n")[0].match(SIZE_REG)||[Infinity])[0];return n-r});var e={};var t=1;answers.forEach(function(n){var r=n.body_markdown.split("\n")[0];var i=$("#answer-template").html();var s=r.match(NUMBER_REG)[0];var o=(r.match(SIZE_REG)||[0])[0];var u=r.match(LANGUAGE_REG)[1];var a=getAuthorName(n);i=i.replace("{{PLACE}}",t++ +".").replace("{{NAME}}",a).replace("{{LANGUAGE}}",u).replace("{{SIZE}}",o).replace("{{LINK}}",n.share_link);i=$(i);$("#answers").append(i);e[u]=e[u]||{lang:u,user:a,size:o,link:n.share_link}});var n=[];for(var r in e)if(e.hasOwnProperty(r))n.push(e[r]);n.sort(function(e,t){if(e.lang>t.lang)return 1;if(e.lang<t.lang)return-1;return 0});for(var i=0;i<n.length;++i){var s=$("#language-template").html();var r=n[i];s=s.replace("{{LANGUAGE}}",r.lang).replace("{{NAME}}",r.user).replace("{{SIZE}}",r.size).replace("{{LINK}}",r.link);s=$(s);$("#languages").append(s)}}var QUESTION_ID=43048;var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe";var answers=[],page=1;getAnswers();var SIZE_REG=/\d+(?=[^\d&]*(?:<(?:s>[^&]*<\/s>|[^&]+>)[^\d&]*)*$)/;var NUMBER_REG=/\d+/;var LANGUAGE_REG=/^#*\s*([^,]+)/
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src=https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js></script><link rel=stylesheet type=text/css href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"><div id=answer-list><h2>Leaderboard</h2><table class=answer-list><thead><tr><td></td><td>Author<td>Language<td>Size<tbody id=answers></table></div><div id=language-list><h2>Winners by Language</h2><table class=language-list><thead><tr><td>Language<td>User<td>Score<tbody id=languages></table></div><table style=display:none><tbody id=answer-template><tr><td>{{PLACE}}</td><td>{{NAME}}<td>{{LANGUAGE}}<td>{{SIZE}}<td><a href={{LINK}}>Link</a></table><table style=display:none><tbody id=language-template><tr><td>{{LANGUAGE}}<td>{{NAME}}<td>{{SIZE}}<td><a href={{LINK}}>Link</a></table>
Respostas:
GolfScript, 9 bytes
A resposta original (dibs!) Também está no GolfScript, que é como eu sei que é sintaticamente válida. Eu testei em http://golfscript.apphb.com/ .
Detesto o uso de idiomas projetados para o golfe, mas tive que vencer esse desafio, por isso traí meus valores postando esta resposta. Eu não sei o que a maioria dos personagens faz nessa linguagem, mas uma vez aprendi inadvertidamente, enquanto deslizava uma resposta do GolfScript, que um
}
comentário incomparável fora do restante do programa. Isso me permitiu ignorar o resto dos personagens.fonte
Befunge-93, 2085 bytes
Eu pensei que iria me divertir e ir meta, reciclando o melhor dos reciclados . Não vou a nenhum prêmio por brevidade aqui.
Na verdade, este também é um poliglota para 5 idiomas: Befunge-93 , oOo Code , Pyth , Python 3 e Ruby. No entanto, como o código original é apenas sintaticamente válido para o Befunge-93, só estou contando isso.
Infelizmente, o código original tinha apenas um par
[]
e muitos.
s, então eu não consegui encaixar o Brainfuck (daí o ooo Code).Notas
Isso acabou surpreendentemente restritivo, porque:
001111111222
, exigindo o uso deord
Ruby e Python. Em particular, não há5
, o que acabou sendo uma dor para Pyth.@
meios quep
precisavam ser usados para colocar um@
no Befunge.*
significou que tivemos que multiplicar dividindo pelo inverso de um número. Diversão.Befunge-93
O programa Befunge é
onde pulamos as instruções inúteis. Nós codificar cada dígito como a diferença em valores ASCII entre caracteres, especificamente
cabf
vsa
.Código oOo
O BF correspondente é
, dos quais a única parte relevante é
Pyth
Pyth executa apenas a primeira linha, então
Note que Pyth usa uma notação de prefixo, então a primeira parte da linha é realmente
( Nota:
e
significa%10
)Devido à natureza de Pyth, isso é impresso automaticamente. O restante da linha é Pyth válido, mas o espaço anterior a
o
suprime a impressão automática.Python 3
A maioria do código Python é comentada usando cadeias, especialmente uma grande cadeia de citação tripla no meio. Ignorando algumas seqüências perdidas, temos:
A primeira e a última linha são sintaticamente válidas, mas não fazem nada. As duas linhas do meio imprimem o que precisamos.
Rubi
O código Ruby é semelhante, mas estamos usando um heredoc em vez de uma cadeia de caracteres tripla para comentar a maior parte do programa. Ignorando algumas strings perdidas, temos:
Mais uma vez, a primeira linha é sintaticamente válida, mas não faz nada. A segunda linha imprime o que precisamos.
fonte
CJam, 12 bytes
O tópico Desembaralhar o código é uma fonte realmente boa para impressão de números aleatórios. Este foi bastante divertido de juntar :)
Respostas de bônus
14 bytes:
19 bytes:
fonte
Avestruz, 198
Estou animado para obter uma resposta de avestruz; Eu não me importo quanto tempo isso leva. : P (esta é a versão 0.5.0 , a propósito)
Original :
Tudo o que mudei foi o seguinte:
Quebra automática de tudo, exceto
2 n15
em um bloco ({}
) que é imediatamente exibido (;
).Preso
2 n15
no final.2
empurra a2
,n
empurra a0
e15
empurra15
, o que acaba se tornando2015
quando a saída.Isso realmente me ajudou a encontrar um bug:
2n15
não funciona por algum motivo (é impresso215
), mas ambos2 n15
e2n 15
funcionam. Vou ter que descobrir por que isso é ....Aqui está a consulta de pesquisa que eu usei para encontrar esse exemplo de código perfeito:
Essa resposta funcionaria para 140, mas vou ver se consigo diminuir ...
fonte
JavaScript, 26 bytes
Original :
Reciclado:
Apenas desloca 4030 um pouco para a direita.
fonte
CJam, 14 bytes
Este é um pouco complicado, então eu tive que publicá-lo, embora seja um pouco longo. A resposta original também está no CJam, portanto é válida.
Resposta original:
Reciclado 2015:
Como funciona
Portanto, a pilha contém
20
e15
é impressa uma após a outra, imprimindo 2015Experimente online aqui
fonte
Marbelous, 54 bytes
Resposta chata (54 bytes)
(seguido por uma tonelada de novas linhas à direita para igual a 54 bytes)
Resposta original
A placa principal simplesmente solta bolinhas de gude representando cada um dos caracteres de
2015
.R
eQ
placas são definidas, mas nunca usadas.Resposta alternativa (92 bytes)
Resposta original
Espaços como células em branco devem ser verificados. Isso primeiro imprime
2
(0x32), depois imprime0x03+0x02+0x0A=0x0F=15
como um decimal de três dígitos (015
). As três primeiras linhas não fazem nada.Teste as respostas aqui.
fonte
Pyth, 25
https://github.com/isaacg1/pyth
Aqui está a resposta original (também escrita em pyth). Eu sei que essa não é uma resposta muito competitiva (existe uma resposta em python de comprimento 26), mas eu realmente gostei de sugerir isso, e acho que sai uma resposta bastante cômica.
Explicação:
Basicamente, isso está filtrando uma lista dos dois primeiros milhões de números por ser igual a 2015. Em seguida, trata essa lista de números como os dígitos de um número de 10 BILHÕES de base. Felizmente, existe apenas um número igual a 2015 no intervalo, então você obtém 2015 * 10000000000 ^ 0, que é apenas 2015. Isso leva alguns segundos para ser executado.
fonte
Perl, 48 bytes
Resposta original
fonte
Python 2, 26 bytes
Retirado do script python menor para imprimir números pares de 0 a 100 segmentos. Esta é provavelmente a solução que @FryAmTheEggman estava fazendo alusão.
fonte
Mathematica, 60 bytes
Fonte
A parte
Floor
entre parênteses é apenas uma série de aplicativos de funções de funções inexistentes (com as quais o Mathematica não tem problemas, devido ao seu modelo de computação simbólico). Da mesma forma, basta escrever o piso e aPrint@2015
multiplicação, da qual o Mathematica também não se queixa. Sem o açúcar sintático, seriaComo não estamos assumindo um ambiente REPL, o resultado avaliado nunca é impresso (o que seria
Null Floor[ggggiiimmnnoorrrstt[ee[RS[DF[IM], ad], ee], 0.22346]]
), mas apenas o efeito colateral doPrint
item realmente é STDOUT.Obrigado ao Sp3000 por aumentar a fonte para isso.
fonte
> <>, 57 bytes
Código C ++ original, do desafio RadioASCII :
Código > <> (Peixe) reciclado :
Como o Befunge,> <> é uma linguagem 2D baseada em pilha. A execução começa no canto superior esquerdo e é inicialmente para a direita. Somente a primeira linha do programa é executada, da seguinte maneira:
Agora, a grande questão é: por que o código C ++ é válido> <>? Em> <> existem maneiras de mudar a direção do fluxo do programa (afinal, é uma linguagem 2D):
Quando o código C ++ é executado, a inicial
#
reflete o fluxo do programa para a esquerda. Como> <> é toroidal, o ponteiro da instrução se aproxima, aparecendo no final da linha, encontrando o>
que direciona o fluxo do programa para a direita novamente. O ponteiro então volta para o#
, retorna para>
... e, portanto, ocorre um loop infinito e nunca é gerado um erro.fonte
Python 3, 1878 bytes
Muito longo, mas queria compartilhar de qualquer maneira:
Retirado da resposta de KennyTM .
Vi que 2, 0, 1 e 5 e # podiam ser encontrados no código, então mudei alguns caracteres para fazer
print(2015)
e poderia comentar o resto. Também coloquei a importação PIL no comentário para que não exija essa biblioteca.fonte
PHP, 21 bytes
Vamos tentar de novo. Retirado de outra resposta PHP de Decifrar o código-fonte. É bastante básico, mas até agora é o programa mais curto em um idioma que não seja golfe. Você pode verificá-lo em http://codepad.org/15EjIYAU . O código original é o seguinte:
fonte
4*2/8
;)