Escreva um programa que produza todas as 64 camadas dessa representação do número de Graham da Wikipedia:
Sua saída deve corresponder exatamente a esta versão ASCII (na qual ^
representa as setas para cima de Knuth e as combinações de barras e sublinhados representam os grandes colchetes horizontais):
3^^...............................................................................................................................^3
\_______________________________________________________________ _______________________________________________________________/
\/
3^^.............................................................................................................................^3
\______________________________________________________________ ______________________________________________________________/
\/
3^^...........................................................................................................................^3
\_____________________________________________________________ _____________________________________________________________/
\/
3^^.........................................................................................................................^3
\____________________________________________________________ ____________________________________________________________/
\/
3^^.......................................................................................................................^3
\___________________________________________________________ ___________________________________________________________/
\/
3^^.....................................................................................................................^3
\__________________________________________________________ __________________________________________________________/
\/
3^^...................................................................................................................^3
\_________________________________________________________ _________________________________________________________/
\/
3^^.................................................................................................................^3
\________________________________________________________ ________________________________________________________/
\/
3^^...............................................................................................................^3
\_______________________________________________________ _______________________________________________________/
\/
3^^.............................................................................................................^3
\______________________________________________________ ______________________________________________________/
\/
3^^...........................................................................................................^3
\_____________________________________________________ _____________________________________________________/
\/
3^^.........................................................................................................^3
\____________________________________________________ ____________________________________________________/
\/
3^^.......................................................................................................^3
\___________________________________________________ ___________________________________________________/
\/
3^^.....................................................................................................^3
\__________________________________________________ __________________________________________________/
\/
3^^...................................................................................................^3
\_________________________________________________ _________________________________________________/
\/
3^^.................................................................................................^3
\________________________________________________ ________________________________________________/
\/
3^^...............................................................................................^3
\_______________________________________________ _______________________________________________/
\/
3^^.............................................................................................^3
\______________________________________________ ______________________________________________/
\/
3^^...........................................................................................^3
\_____________________________________________ _____________________________________________/
\/
3^^.........................................................................................^3
\____________________________________________ ____________________________________________/
\/
3^^.......................................................................................^3
\___________________________________________ ___________________________________________/
\/
3^^.....................................................................................^3
\__________________________________________ __________________________________________/
\/
3^^...................................................................................^3
\_________________________________________ _________________________________________/
\/
3^^.................................................................................^3
\________________________________________ ________________________________________/
\/
3^^...............................................................................^3
\_______________________________________ _______________________________________/
\/
3^^.............................................................................^3
\______________________________________ ______________________________________/
\/
3^^...........................................................................^3
\_____________________________________ _____________________________________/
\/
3^^.........................................................................^3
\____________________________________ ____________________________________/
\/
3^^.......................................................................^3
\___________________________________ ___________________________________/
\/
3^^.....................................................................^3
\__________________________________ __________________________________/
\/
3^^...................................................................^3
\_________________________________ _________________________________/
\/
3^^.................................................................^3
\________________________________ ________________________________/
\/
3^^...............................................................^3
\_______________________________ _______________________________/
\/
3^^.............................................................^3
\______________________________ ______________________________/
\/
3^^...........................................................^3
\_____________________________ _____________________________/
\/
3^^.........................................................^3
\____________________________ ____________________________/
\/
3^^.......................................................^3
\___________________________ ___________________________/
\/
3^^.....................................................^3
\__________________________ __________________________/
\/
3^^...................................................^3
\_________________________ _________________________/
\/
3^^.................................................^3
\________________________ ________________________/
\/
3^^...............................................^3
\_______________________ _______________________/
\/
3^^.............................................^3
\______________________ ______________________/
\/
3^^...........................................^3
\_____________________ _____________________/
\/
3^^.........................................^3
\____________________ ____________________/
\/
3^^.......................................^3
\___________________ ___________________/
\/
3^^.....................................^3
\__________________ __________________/
\/
3^^...................................^3
\_________________ _________________/
\/
3^^.................................^3
\________________ ________________/
\/
3^^...............................^3
\_______________ _______________/
\/
3^^.............................^3
\______________ ______________/
\/
3^^...........................^3
\_____________ _____________/
\/
3^^.........................^3
\____________ ____________/
\/
3^^.......................^3
\___________ ___________/
\/
3^^.....................^3
\__________ __________/
\/
3^^...................^3
\_________ _________/
\/
3^^.................^3
\________ ________/
\/
3^^...............^3
\_______ _______/
\/
3^^.............^3
\______ ______/
\/
3^^...........^3
\_____ _____/
\/
3^^.........^3
\____ ____/
\/
3^^.......^3
\___ ___/
\/
3^^.....^3
\__ __/
\/
3^^...^3
\_ _/
\/
3^^^^3
Observe que existem 64 camadas, que não há espaços à direita e que duas ^
ocorrem antes dos pontos e apenas uma ocorre depois.
O hash MD5 da sua saída deve ser precisamente c84d0e20eac2a7f891ab42a8eb77759f
ou 1ad3b10d06e38693436c14958b2c47a8
se houver uma nova linha à direita (o que está ok).
O código mais curto em bytes vence. Saída para stdout. Não há entrada.
code-golf
kolmogorov-complexity
Passatempos de Calvin
fonte
fonte
1ad3b10d06e38693436c14958b2c47a8
conforme fornecido pelo grc, ouc84d0e20eac2a7f891ab42a8eb77759f
se o caractere de nova linha final puder ser omitido.Respostas:
CJam - 64
Experimente em http://cjam.aditsu.net/
fonte
Python, 122
Exemplo:
fonte
Perl - 113 (112 + 1 para -E)
Golfe:
Ungolfed:
EDIT: Houve um erro na interpolação de strings em que o perl pensou que $ m3 era uma variável, então eu tive que adicionar 2 caracteres para corrigir isso.Resolvido alterando $ m para $.NINJA EDIT: instâncias substituídas de "" por $ ". Salva 2 caracteres
NINJA EDIT 2: Obrigado @chilemagic por apontar que eu posso usar say em vez de imprimir com -E para salvar um personagem.
EDIÇÃO NÃO-SO-NINJA 3: @ A solução da Nax superou minha solução antiga, então eu a lustrei um pouco para me manter firme.
fonte
say
vez deprint
e depois executá-lo com em-E
vez de-e
(se sua versão do Perl for alta o suficiente). Parece ótimo!Haskell, 152
fonte
+1
e adicionar o ponto antes"^3"
.C 161
182(Eu acho que atingi o máximo desse método, talvez eu deva encontrar um novo que possa ser mais aperfeiçoado)
compile como C99!
JS 158
xem.github.io/obfuscatweet/ 124:
fonte
Bash + coreutils, 150
Eu pensei que poderia ser capaz de fazer melhor do que isso. Ah bem.
Resultado:
fonte
STATA 135
fonte
JavaScript 179
Teste-o no console do navegador ou em http://jsfiddle.net/2qwvrvcw/ .
fonte
Javascript (203)
Ungolfed:
fonte
C # (
212211).Net Fiddle (parece exigir que a classe e o método Main sejam públicos)
Ligeiramente não destruído:
fonte
Perl,
116112109108 (incluindo -E)Minha primeira tentativa de jogar golfe. Por favor, tome-o como tal:
Golfe:
Muito pouco destruído (não mantido ...):
Essencialmente, funciona assim: para cada linha de 3s e um colchete (eles são manipulados juntos), ele grava a sequência codificada em RLE e a decodifica. A regra é simples: todo caractere seguido de um número é expandido para esse caractere esse número de vezes. Caracteres sem um número são deixados em paz. Finalmente, o caractere
!
denota um 3 e umN
significa uma nova linha (3 teve que ser codificado porque é número e participaria ansiosamente como o número de repetições).Cada linha de 3s e sua chave recebem um elemento na matriz de 64 elementos que o mapa está gerando. Digamos, como a impressão, pode produzir matrizes - se for fornecida uma matriz, ela imprime todos os elementos (sem separadores).
Eu usei o truque do chilemagic
-E
. Obrigado por isso.Reforços: Duas soluções de 113 bytes começaram a aparecer aqui. O RLE não sucumbirá sem luta!
Limpeza de feeds : Agora percebi que não preciso de uma transliteração especial de \ n, porque todas as strings no Perl são automagicamente alinhadas com múltiplas linhas! Assim, o RLE se apega mais perto das costas do Ruby! Agora em 109 bytes.
Iluminação agonizante : Contar os caracteres corretamente é mais difícil do que eu pensava. Depois de alguma luta, decidi
(-1, porque conta um LF no final do script). Além disso, reorganizei minhas atribuições e salvei 1 caractere, estabelecendo-me 108 bytes.fonte
MATLAB (325)
ungolfed:
MATLAB (252)
ungolfed:
fonte
PHP 214
Pensei que estava indo bem até contar os personagens, enfim, aqui está -
fonte
->' '
,<br>
->\n
)<?
no início do código - ele deve ser um programa válido, não uma função.<?function a($n,$v=" "){return str_repeat($v, $n);}for($i=64;$i>1;){$b=a($i-1,"_");$v.=a(64-$i)."3^^".a($i*2-1,".")."^3\n".a(65-$i--)."\\$b".a(2)."$b/\n".a(65)."\/\n";}$v.=a(63)."3^^^^3";echo$v;
php grahams.php | md5sum
::c84d0e20eac2a7f891ab42a8eb77759f -
Lua - 174
Antes disso, eu obtive duas soluções algoritmicamente diferentes (ambas 182!):
fonte