Saída o mesmo comprimento de Lorem ipsum seu código é!
Regras:
- O código não pode ser idêntico à saída
- Nenhuma biblioteca de compactação
- Programa mais curto em duas semanas vence
- Sem o uso da rede, leitura de arquivo e outros truques que com um poderia facilmente resolver qualquer problema de golfe código (com
eval
,exec
, etc)
Exemplo
Your code with length 25.
Resultado
Lorem ipsum dolor sit ame
code-golf
string
compression
self-referential
randomra
fonte
fonte
Respostas:
GolfScript (122 ou 138 bytes)
Parece haver uma ambiguidade muito pequena nas regras: o que exatamente significa "saída"? Muitos programas assumem que a "saída" de um programa não inclui uma nova linha final, que existe para garantir que a próxima linha da entrada do shell comece em uma linha separada.
é 122 bytes e gera 122 bytes de lorum ipsum e uma nova linha à direita.
tem 138 bytes e produz 138 bytes de lorum ipsum sem nova linha final.
fonte
rot13 (1)
Estou surpreso que ninguém tenha pensado nisso antes :)
e como bônus, uma solução perl muito simples
Perl (252)
fonte
...ExerciTationU/;s,\S\K[A-Z], \l$&,g;print
print'LoremIpsumDolor...NostrudExerciT'=~s,\S\K[A-Z], \l$&,gr
very simple perl solution
mais.Golfscript - 161
Edit: a solução python produz um comprimento diferente do seu, então eu fiz um melhor com o golfscript. Esta é também a minha primeira resposta do GolfScript.
Não tenho certeza de como isso é codificado aqui, então aqui está um link para o arquivo.
fonte
Python 2-332
Se alguém se importa, aqui está uma lista parcial de melhorias:
1181 -> 630 -> 549 -> 510 -> 456 -> 416 -> 381 -> 332
fonte
Mathematica, 8
Suponho que uma saída visualmente idêntica seja aceitável. Portanto, eu uso esse caractere no lugar do ASCII "i", que faz com que os dois símbolos sejam classificados automaticamente na ordem correta:
fonte
Bash, 156
Como o uso de uma "biblioteca de compactação" real é proibido, abusarei
base64
dos coreutils. (xxd -r
para decodificar o envio)Eu gerei o código acima usando este programa PHP:
fonte
cat $0
.Mathematica
4746Não tenho certeza se este é um jogo limpo. O Mathematica possui o texto 'completo' de Lorem ipsum em seus dados de exemplo. O seguinte simplesmente diz ao Mathematica para obter uma sequência de um comprimento específico do exemplo interno do Lorem Ipsum.
Editar :
Original :
fonte
PHP, 75 (Dinâmico)
Exemplo de saída:
Ele não usa compactação, mas altera as regras. Muito.
Você pode adicionar caracteres ilegíveis ao final do exemplo e ainda assim ter a saída correta (até 2k + caracteres).
PHP, 59 (Estático)
O mesmo que acima, mas usa um tamanho fixo e estará incorreto se forem adicionados caracteres extras.
fonte
Lote do Windows,
878720Testado no Windows XP e Windows 7, mas deve funcionar para todos os cmd com extensões (IIRC, Windows NT e posterior).
Tem que ser executado usando
CMD /V:ON /C batchfile
para ativar a extensão variável atrasada, mas eu prefiro que não seja um codegolf amigávelSETLOCAL EnableDelayedExpansion
dentro do arquivo em lotes.fonte
J (144)
Seria 128 se eu não precisasse torná-lo um script adequado para que você possa medir a saída.
Como funciona: existem apenas 23 caracteres únicos no texto, portanto, isso pode ser representado em uma codificação de 5 bytes. Os caracteres na cadeia codificada são convertidos em seus números ASCII (
a.i.
), então cada um dos números é transformado em sua representação de base 2 (#:
), então os bits são agrupados em grupos de cinco (_5>\,
) e, em seguida, cada um desses grupos é convertido ao seu valor (#.
), e estes são usados como um índice na tabela de pesquisa. ({~
)A tabela de pesquisa realmente precisava de alguns ajustes, porque um literal de cadeia J não pode conter
\n
,\r
ou\0
.Hexdump:
fonte
('VLI., ',97}.a.)
, de alguma forma, ela não atrapalha o outro literal.