Qual é o subconjunto contíguo mais curto de ASCII necessário para gerar o restante?


42

Os caracteres ASCII imprimíveis (códigos hexadecimais 20 a 7E) na ordem são:

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~

(Observe que há espaço lá.)

Essa sequência contém claramente todos os caracteres ASCII imprimíveis pelo menos uma vez em ordem crescente quando lidos da esquerda para a direita, mas não em ordem decrescente.

A corda

REVERSED:~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! NORMAL: !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~

contém todos os caracteres ASCII imprimíveis pelo menos uma vez, em ordem crescente e decrescente. Por outras palavras, quando os caracteres são avaliados com o seu código numérico, as subsequências crescentes e decrescentes mais longas têm o comprimento 95 (o número de caracteres ASCII imprimíveis).

Desafio

Escolha um subconjunto contíguo de N caracteres ASCII imprimíveis, como LMNOP(N = 5). Escreva um programa usando apenas os caracteres N cuja saída contém todos os 95 caracteres ASCII em ordem crescente e decrescente, como no exemplo acima.

O vencedor é a finalização com o menor N. No caso de empate, o código mais curto em bytes vence.

Notas

  • Um subconjunto contíguo significa um conjunto de ASCIIs imprimíveis que aparecem em uma linha ininterrupta, como LMNOPou 89:;<=>.
  • Seu subconjunto contíguo pode "dar a volta" ~ao espaço, mas isso gera uma penalidade de +3 em N. Então {|}~, N = 4, mas {|}~ !N = 6 + 3 = 9.
  • Seu programa pode conter apenas N caracteres ASCII imprimíveis do subconjunto contíguo que você selecionou. Nem todos precisam aparecer e podem aparecer várias vezes em qualquer ordem. (Todos os ASCII não imprimíveis e todos os não ASCII não são permitidos. Isso significa que guias e novas linhas não são permitidas.)
  • Sua saída pode conter apenas caracteres ASCII imprimíveis e deve ter menos de 10000 caracteres.
  • As subsequências crescentes e decrescentes mais longas da saída devem ter comprimento 95 (conforme explicado acima).
  • Saída para stdout. Não há entrada.
  • N é um número inteiro positivo menor que 96.

45
Por fim, um desafio criado para a Brainfuck!
— Level River St

1
Dado o tipo de resposta que está atraindo (que é claramente a melhor maneira), pode ser interessante que a pontuação seja uma combinação de falta de programa e número de caracteres usados. Talvez minimizar n * m onde n é o tamanho do subconjunto de ascii e m é a duração do programa?
— JP

1
@JP "O vencedor é a finalização com o menor N. No caso de empate, o código mais curto em bytes vence." O consenso geral é que é uma má forma alterar as regras posteriormente. A resposta vencedora será o programa mais curto em Unary (que é basicamente o programa mais curto em Brainfuck, apenas codificado de maneira diferente). #
— Level River St St

1
Sugiro, no entanto, que aqueles que postam no Unary possam colocar uma aproximação do tamanho do código em notação científica, em vez de nos fazer apertar os olhos para contar os dígitos.
— Level River St

1
Bem-vindo ao CodeGolf, onde 90% de todas as perguntas são invadidas. ;)
— TwoThe

Respostas:


33

Unário, N = 1

14680262330376163203871465704220787333741951071 bytes

Usa apenas o byte '0' (ASCII 49).

Jogou cerca de 4.13253e + 60 bytes na solução da @ Comintern. Crédito ainda para ele :)

No Brainfuck original:

++++++++[->++++<]>
[>+>+++<<-]>>-
[-<.+<+>>]<<
[>-.<-]

5
RI MUITO! Adoro a redução de bytes conta no Unary, eles sempre me fazem rir. Bom golfe do Brainfuck subjacente, +1
— Comintern

É uma pena ainda ter 14.680.262.330.376.163.203.871.465.694.220 bytes a mais que o máximo (10.000). Talvez você possa jogar um pouco mais de golfe?
— Gabe

3
@ Gabe: A saída é limitada a 10.000 caracteres. O comprimento do programa não é limitado.
— Nneonneo 8/08

@nneonneo: Ah, então continue!
— Gabe

96

Unário , N = 1

4132527913354820031118363262102424570092493175835499123283719 (4.1325279e + 60) bytes

O código fonte no unary é obviamente muito grande para ser postado aqui. Pode ser facilmente reproduzido digitando (ou gerando) um arquivo preenchido com "0" s do mesmo tamanho que o número de bytes acima.

Aqui está a representação binária:

1010010010010110011000010010010010010010010010001111000000010010010010010110011000010010010010010010010010010010010010010010010010010010010001111000110011001010001100010000000111001110011001011100000111

E o código Brainf ** k equivalente (quebras de linha para maior clareza):

++++[->++++++++<]>>
+++++[->+++++++++++++++++++<]>
[-<+<.+>>]<
[-<-.>]

Saída:

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

EDIT: Golfed out 9.097887e + 87 caracteres desnecessários.


17
Droga. Aqui estava me sentindo esperto por obter N = 2. +1 e também para jogar fora mais personagens do que átomos no universo.
— Nneonneo 6/08

55
Hahaha +1 apenas por "Jogou 9.097887e + 87 caracteres desnecessários".
— Maçaneta

8
Eu não sabia que o "Unary" existia, então eu o inventaria, exceto que usaria apenas a letra "O". Então eu ia escrever um banco de dados nele . Agora que essa resposta me apresentou, acho que posso apenas fazer uma variante do Unary ... Onary?
— perfil completo de Rebmu

6
Mostre-nos o código ou não é uma resposta. :-) Mais ao ponto: essa resposta é basicamente apenas uma alegação (bem-suportada) de que esse programa existe em um espaço abstrato de programas possíveis, mas eu afirmo que a instanciação física de um programa é impossível e, portanto, é uma sem solução. :-)
— R. ..

6
@R .. Um descompactador que assume todos os caracteres iguais não está enganando, se você criar um formato de arquivo compactado especial que permita apenas um único caractere. Nesse caso, o fato de todos os caracteres serem iguais é um fato difícil, não uma suposição; portanto, o descompressor pode confiar nesse fato.
— hvd

51

Brainfuck, N = 2

----------------------------------------------------------------------------------------------------------------------------------.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.

24.383 bytes. Usa apenas - e. (ASCII 45 e 46). Experimente aqui: http://esoteric.sange.fi/brainfuck/impl/interp/i.html . Provavelmente pode ser analisado como código Morse com os espaços corretos.

Requer um intérprete aderente à definição tradicional de Brainfuck, que usa uma matriz de (pelo menos) células de 30.000 bytes , todas inicializadas em zero.


Muito bom. Isso ocorreu-me depois que fui para a cama :-D
— Level River St

Como é que isso funciona? Há apenas uma saída no final, não entendo como ela pode gerar toda a cadeia de 95 caracteres.
— Lou

4
@LeoKing você precisa ser mais atento. existem 256-126 = 130 -, então a parte descendente .-.-.etce a parte ascendente (grupos de 255 -seguidos de a .) Até onde eu sei, está tudo lá. Veja também editar na minha resposta para explicação.
— Level River St

1
Ah, desculpe, quando eu rolei ao longo, pensei que era apenas uma sequência de -apenas uma .no final :). Minha culpa.
— Lou

4
+1 "Provavelmente pode ser analisado como código Morse com os espaços corretos."
— Amory

23

CJam - N = 3; 7659 bytes

''(((((((''((((((''(((((''((((''(((''((''('''(')'))')))'))))')))))'))))))')))))))'))))))))')))))))))'))))))))))')))))))))))'))))))))))))')))))))))))))'))))))))))))))')))))))))))))))'))))))))))))))))')))))))))))))))))'))))))))))))))))))')))))))))))))))))))'))))))))))))))))))))')))))))))))))))))))))'))))))))))))))))))))))')))))))))))))))))))))))'))))))))))))))))))))))))')))))))))))))))))))))))))'))))))))))))))))))))))))))')))))))))))))))))))))))))))'))))))))))))))))))))))))))))')))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))))'))))))))))))))))))))))))))))))')))))))))))))))))))))))))))))'))))))))))))))))))))))))))))')))))))))))))))))))))))))))'))))))))))))))))))))))))))')))))))))))))))))))))))))'))))))))))))))))))))))))')))))))))))))))))))))))'))))))))))))))))))))))')))))))))))))))))))))'))))))))))))))))))))')))))))))))))))))))'))))))))))))))))))')))))))))))))))))'))))))))))))))))')))))))))))))))'))))))))))))))')))))))))))))'))))))))))))')))))))))))'))))))))))')))))))))'))))))))')))))))'))))))')))))'))))')))'))')'(''''(''((''(((''((((''(((((''((((((''(((((((

Experimente em http://cjam.aditsu.net/


13
What..just o que ...
— Calvin Hobbies

1
@ Calvin'sHobbies apenas incrementar e decrementar personagens :)
— aditsu

52
Tem certeza de que não é o LISP?
— avalancha

18

Brainf ** k, N = 4

Meu primeiro programa de foda cerebral. Usa 3 caracteres fora do bloco +,-.(Ascii 43 a 46.)

410 bytes (um .pode ser excluído do programa se o dobro ~~puder ser reduzido para um único ~).

Aqui está a lista de comandos nessa área da tabela ASCII (não preciso do comando de entrada):

+   increment (increase by one) the byte at the data pointer.
-   decrement (decrease by one) the byte at the data pointer.
.   output the byte at the data pointer.
,   accept one byte of input, storing its value in the byte at the data pointer.

Felizmente, os comandos restantes <>[](mover o ponteiro de dados e executar saltos condicionais) não são necessários!

Divida em 3 linhas para maior clareza: 1: Incremente até que os dados atinjam 32. 2: Saída e incremente até que os dados atinjam 126. 3: Saída e diminua até que os dados atinjam 32.

++++++++++++++++++++++++++++++++

.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.

.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.

Saída

 !"#$%&'()*+,-./0123456789:;<=>@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

Editar N = 2

Pela resposta de @nneonneo, é possível substituir cada um +por 255 -sinais para N = 2. algum rearranjo do código e da saída (exibindo para baixo e para cima) significa que a primeira linha pode ser reduzida para 256-126 = 130 -sinais. Isso me ocorreu depois que fui dormir, e noneoneo me venceu. https://codegolf.stackexchange.com/a/35801/15599


Sim, você pode usar em ~vez de, ~~pois as subsequências crescente e decrescente ainda estariam lá.
— Passatempos de Calvin

Tinha que haver um programa em algum lugar Brainfuck para esta pergunta;)
— Wally West

bater-me a ele ....
— Joshpbarron

7

C; N = 43 = 40 + 3

Aqui evito caracteres comuns como + - * /dígitos 0-9, vírgula ,e ponto e vírgula ;.

Então fui forçado a expressar vários números usando apenas as operações & % ~.

Pode ser possível jogar mais golfe (encontrar as menores representações para os números 63 e 95 é um exercício para o leitor).

main(){
if (printf(" !"))
if (putchar('"'))
if (printf("#$%%&'"))
if (putchar('i'%(~' '&'a')))
if (putchar('j'%(~' '&'a')))
if (putchar('k'%(~' '&'a')))
if (putchar('l'%(~' '&'a')))
if (putchar('m'%(~' '&'a')))
if (putchar('n'%(~' '&'a')))
if (putchar('o'%(~' '&'a')))
if (putchar('p'%(~' '&'a')))
if (putchar('q'%(~' '&'a')))
if (putchar('r'%(~' '&'a')))
if (putchar('s'%(~' '&'a')))
if (putchar('t'%(~' '&'a')))
if (putchar('u'%(~' '&'a')))
if (putchar('v'%(~' '&'a')))
if (putchar('w'%(~' '&'a')))
if (putchar('x'%(~' '&'a')))
if (putchar('y'%(~' '&'a')))
if (putchar('z'%(~' '&'a')))
if (putchar('{'%(~' '&'a')))
if (putchar('|'%(~' '&'a')))
if (putchar('}'%(~' '&'a')))
if (putchar('~'%(~' '&'a')))
if (putchar('~'%(~'!'&'a')))
if (putchar(~(~('~'%(~'!'&'a'))&~(~' ' & '!'))))
if (putchar(~'!'&'a'))
if (putchar(~' '&'a'))
if (putchar(~' '&'b'))
if (putchar(~' '&'c'))
if (putchar(~' '&'d'))
if (putchar(~' '&'e'))
if (putchar(~' '&'f'))
if (putchar(~' '&'g'))
if (putchar(~' '&'h'))
if (putchar(~' '&'i'))
if (putchar(~' '&'j'))
if (putchar(~' '&'k'))
if (putchar(~' '&'l'))
if (putchar(~' '&'m'))
if (putchar(~' '&'n'))
if (putchar(~' '&'o'))
if (putchar(~' '&'p'))
if (putchar(~' '&'q'))
if (putchar(~' '&'r'))
if (putchar(~' '&'s'))
if (putchar(~' '&'t'))
if (putchar(~' '&'u'))
if (putchar(~' '&'v'))
if (putchar(~' '&'w'))
if (putchar(~' '&'x'))
if (putchar(~' '&'y'))
if (putchar(~' '&'z'))
if (putchar(~' '&'{'))
if (putchar(~' '&'|'))
if (putchar(~' '&'}'))
if (putchar(~' '&'~'))
if (putchar(~(~(~' '&'~')&~(~' ' & '!'))))
if (putchar(~('!'%' ')&'a'))
if (printf("abcdefghijklmnopqrstuvwxyz{|}~}|{zyxwvutsrqponmlkjihgfedcba"))
if (putchar(~('!'%' ')&'a'))
if (putchar(~(~(~' '&'~')&~(~' ' & '!'))))
if (putchar(~' '&'~'))
if (putchar(~' '&'}'))
if (putchar(~' '&'|'))
if (putchar(~' '&'{'))
if (putchar(~' '&'z'))
if (putchar(~' '&'y'))
if (putchar(~' '&'x'))
if (putchar(~' '&'w'))
if (putchar(~' '&'v'))
if (putchar(~' '&'u'))
if (putchar(~' '&'t'))
if (putchar(~' '&'s'))
if (putchar(~' '&'r'))
if (putchar(~' '&'q'))
if (putchar(~' '&'p'))
if (putchar(~' '&'o'))
if (putchar(~' '&'n'))
if (putchar(~' '&'m'))
if (putchar(~' '&'l'))
if (putchar(~' '&'k'))
if (putchar(~' '&'j'))
if (putchar(~' '&'i'))
if (putchar(~' '&'h'))
if (putchar(~' '&'g'))
if (putchar(~' '&'f'))
if (putchar(~' '&'e'))
if (putchar(~' '&'d'))
if (putchar(~' '&'c'))
if (putchar(~' '&'b'))
if (putchar(~' '&'a'))
if (putchar(~'!'&'a'))
if (putchar(~(~('~'%(~'!'&'a'))&~(~' ' & '!'))))
if (putchar('~'%(~'!'&'a')))
if (putchar('~'%(~' '&'a')))
if (putchar('}'%(~' '&'a')))
if (putchar('|'%(~' '&'a')))
if (putchar('{'%(~' '&'a')))
if (putchar('z'%(~' '&'a')))
if (putchar('y'%(~' '&'a')))
if (putchar('x'%(~' '&'a')))
if (putchar('w'%(~' '&'a')))
if (putchar('v'%(~' '&'a')))
if (putchar('u'%(~' '&'a')))
if (putchar('t'%(~' '&'a')))
if (putchar('s'%(~' '&'a')))
if (putchar('r'%(~' '&'a')))
if (putchar('q'%(~' '&'a')))
if (putchar('p'%(~' '&'a')))
if (putchar('o'%(~' '&'a')))
if (putchar('n'%(~' '&'a')))
if (putchar('m'%(~' '&'a')))
if (putchar('l'%(~' '&'a')))
if (putchar('k'%(~' '&'a')))
if (putchar('j'%(~' '&'a')))
if (putchar('i'%(~' '&'a')))
if (printf("'&%%$#"))
if (putchar('"'))
if (printf("! "))
{}
}

O subconjunto ascii é 32 ... 41 e 97 ... 126.

Não tenho certeza se caracteres de nova linha são permitidos no código; caso contrário, basta removê-los.


Novas linhas não são permitidas, mas como você pode removê-las em C, não é um problema aqui.
— Hobbies de Calvin

Agradável. Deve ser o N mínimo para um fora solução C de abusar do vinculador - aquela coisa toda main () ...
— Comintern

5

Turbilhão , N = 2, 6486 bytes

Usando apenas 2 caracteres 01,.

000110000011110000100000100000100000100000100000100000100000100000100000100110000011100111100010000000111110000010001001111000100000001111100000100010011110001000000011111000001000100111100010000000111110000010001001111000100000001111100000100010011110001000000011111000001000100111100010000000111110000010001001111000100000001111100000100010011110001000000011111000001000100111100010000000111110000010001001111000100000001111100000100010011110001000000011111000001000100111100010000000111110000010001001111000100000001111100000100010011110001000000011111000001000100111100010000000111110000010001001111000100000001111100000100010011110001000000011111000001000100111100010000000111110000010001001111000100000001111100000100010011110001000000011111000001000100111100010000000111110000010001001111000100000001111100000100010011110001000000011111000001000100111100010000000111110000010001001111000100000001111100000100010011110001000000011111000001000100111100010000000111110000010001001111000100000001111100000100010011110001000000011111000001000100111100010000000111110000010001001111000100000001111100000100010011110001000000011111000001000100111100010000000111110000010001001111000100000001111100000100010011110001000000011111000001000100111100010000000111110000010001001111000100000001111100000100010011110001000000011111000001000100111100010000000111110000010001001111000100000001111100000100010011110001000000011111000001000100111100010000000111110000010001001111000100000001111100000100010011110001000000011111000001000100111100010000000111110000010001001111000100000001111100000100010011110001000000011111000001000100111100010000000111110000010001001111000100000001111100000100010011110001000000011111000001000100111100010000000111110000010001001111000100000001111100000100010011110001000000011111000001000100111100010000000111110000010001001111000100000001111100000100010011110001000000011111000001000100111100010000000111110000010001001111000100000001111100000100010011110001000000011111000001000100111100010000000111110000010001001111000100000001111100000100010011110001000000011111000001000100111100010000000111110000010001001111000100000001111100000100010011110001000000011111000001000100111100010000000111110000010001001111000100000001111100000100010011110001000000011111000001000100111100010000000111110000010001001111000100000001111100000100010011110001000000011111000001000100111100010000000111110000010001001111000100000001111100000100010011110001000000011111000001000100111100010000000111110000010001001111000100000001111100000100010011110001000000011111000001000100111100010000000111110000010001001111000100000001111100000100010011110001000000011111000001000100111100010000000111110000010001001111000100000001111100000100010011110001000000011111000001000100111100010000000111110000010001001111000100000001111100000100010011110001000000011111000001000100111100010000000111110000010001001111000100000001111100000100010011110001000000011111000001000100111100010000000111110000010001001111000100000001111100000100010011110001000000011111000001000100111100010000000111110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001001111000100000001000011110000010001000001100

Saída:

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! 

Eu acho que posso jogar mais com loops, mas codificar com 0 e 1 foi horrível, então não vou fazer isso.

Comentado

00011000001111 // init math.val to O
0000100000100000100000100000100000100000100000100000100000100 // math.val to 32, mem to 32
110000 // set IO to print
0111001111000100000001111100000100 // print ascii(32), mem to 33
01001111000100000001111100000100 // print ascii(33), mem to 34
01001111000100000001111100000100 // print ascii(34), mem to 35
01001111000100000001111100000100 // print ascii(35), mem to 36
                                 // skipped
01001111000100000001111100000100 // print ascii(l23), mem to l24
01001111000100000001111100000100 // print ascii(l24), mem to l25
01001111000100000001111100000100 // print ascii(l25), mem to l26
0100 // print ascii(l26)
111100010000000100001111000001000100 // mem to l25, print ascii(l25)
111100010000000100001111000001000100 // mem to l24, print ascii(l24)
111100010000000100001111000001000100 // mem to l23, print ascii(l23)
                                     // skipped
111100010000000100001111000001000100 // mem to 34, print ascii(34)
111100010000000100001111000001000100 // mem to 33, print ascii(33)
111100010000000100001111000001000100 // mem to 32, print ascii(32)
0001100 // KTHXBAI

Observe que há Oe lcomo 0e 1.


4

Python 2.7 N = 45 = 42 + 3

Isso usa string.printable, classifica e cospe stdout. Salvei alguns caracteres inserindo o .in stdout.writeusando evale formatação de string usando os ordvalores dos caracteres que eu poderia usar.

from string import printable
from sys import stdout
eval("map(stdout%swrite,sorted(printable,None,ord))"%chr(ord('+') + ord('z')-ord('w') ))
print ""
eval("map(stdout%swrite,reversed(sorted(printable,None,ord)))"%chr(ord('+') + ord('z')-ord('w') ))

Fora com o velho - N = 49 = 46 + 3

Infelizmente, embora o python inclua a string.printablelista, isso não está em ordem ascii e não há como usá-lo sem a *ou a ., portanto, são necessários menos caracteres para fazê-lo manualmente.

Usando o intervalo de caracteres:

abcdefghijklmnopqrstuvwxyz{|}~ AND   !"#$%&'()*+,-.

print ''.join((chr(i)
  for i in range(
    len('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'),
    len('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx')
  )))
print ''.join((chr(i)
  for i in range(
    len('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'),
    len('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'),
    -len('x')
  )))

A versão óbvia: N = 63 = 60 + 3

Esta é a versão óbvia usando o intervalo de caracteres:

[\]^_`abcdefghijklmnopqrstuvwxyz{|}~   AND   !"#$%&'()*+,-./01234567 `:

print ''.join([chr(i) for i in range(0x20,0x7E)])
print ''.join(reversed([chr(i) for i in range(0x20,0x7E)]))

Um comentário um pouco superficial, mas você não incluiu 1 no seu primeiro intervalo de caracteres. Você me perguntando por um tempo, por que você precisa de um 0.
— Dunno

@ Dunno Obrigado por apontar, mas eu não sei por que eu usei um 1 quando len('x')me salva outros 2 caracteres.

Acabei de perceber que seu código usa novas linhas. Isso não é permitido, pois eles não são ascii imprimíveis.
— Calvin's Hobbies

@ Calvin'sHobbies Infelizmente, o python não é muito amigável com o golfe, vou ver o que posso fazer.

1
Parece que sua importsolução só funcionará se você tiver ;, o que adiciona uma quantidade substancial de caracteres.
— Gabe

4

C; N = 61 = 58 + 3

Para compensar o uso de um subconjunto tão grande, joguei meu código no golfe.

a;main(d){for(;d&&++a,d||--a;putchar(a+31),a-95||--d);}

O subconjunto ASCII é 32 ... 59 e 97 ... 126.

Foi um desafio divertido evitar o =personagem!


Ah, legal, apesar de a resposta de anatolyg conseguir evitar ;. Você pode usá-lo para expandir sua resposta, sem que ela se torne uma cópia da outra.
— hvd

1
No ......... ;-)
— anatolyg

3

Python 2.7 N = 28 + 12 + 3 = 43

Usando caracteres cdefghijklmnopqrstuvwxyz{|}~e depois agrupando para!"#$%&'()*+

exec "print ''"
   + chr(ord('+') + len('xxx'))        # .
   + "join(chr(i) for i in r"
   + chr(ord('c') + ~len('x'))         # a
   + "nge(ord(' ')"                    # 32
   + chr(ord('+') + len('x'))          # ,
   + " ord('~') + len('x'))) + ''"     # 127
   + chr(ord('+') + len('xxx'))        # .
   + "join(chr(i) for i in r"
   + chr(ord('c') + ~len('x'))         # a
   + "nge(ord('~')"                    # 126
   + chr(ord('+') + len('x'))          # ,
   + " ord(' ') + ~len('')"            # 31
   + chr(ord('+') + len('x'))          # ,
   + " + ~len('')))"                   # -1

Para evitar o uso ,.-, tive que usar alguns truques. Eu usei execpara transformar o código em strings, o que me permitiu usar chr(ord('+') + len('xxx'))para .e chr(ord('+') + len('x'))para ,. Em qualquer lugar que eu precisasse de -1, usei ~ 0 na forma de ~len(''). Para evitar a, eu usei chr(ord('c') + ~len('x'))(99 - 2).

A string que é composta tem N = 48, usando caracteres abcdefghijklmnopqrstuvwxyz{|}~e, em seguida, envolvendo!"#$%&'()*+,-.

print ''.join(chr(i) for i in range(ord(' '), ord('~') + len('x')))
    + ''.join(chr(i) for i in range(ord('~'), ord(' ') + ~len(''), + ~len('')))

Observe que as novas linhas e comentários são apenas para facilitar a leitura.


2

Rubi - N = 48

Deixe Ruby ser Ruby e adote a penalidade máxima.
N = 48 <- 15 ('' - '.') + 30 ('a' - '~') + 3

eval "for c in ' '..'~' do putc c end #{('i'.ord-'.'.ord).chr} for c in ' '..'~' do putc ('~'.ord+' '.ord-c.ord).chr end"

ou

eval "(' '..'~').each { |c| putc c } #{('i'.ord-'.'.ord).chr} (' '..'~').each { |c| putc ('~'.ord+' '.ord-c.ord).chr }"



Antigo:
N = 72 {pontuação linear} <- 72 ('.'-' u ') + linhas novas inválidas

format = 67.chr
format << 42.chr
a = []
for i in 33..126 do a << i end
t = a.dup
for i in 33..126 do a << t.pop end
puts a.pack format

Há algumas brigas aqui para evitar o 'v' em "reverso". Deixei-o porque gosto do pacote ("C *") hack.


1

x86_64 Código da máquina, formato Mach-O

N = 2, 32768 caracteres (muito grande para caber no limite de msg)

Edit: Pastebin está desativado, então você pode encontrar o texto completo em: http://www.ionoclast.com/random/golf.bin.txt


Todo o seu código está disponível em algum lugar? Caso contrário, você pode postar o código completo externamente; por exemplo, em pastebin.com .
— Maçaneta

O executável compilado é 33455 bits ou bytes? Você normalmente não tem um número ímpar de bits, e Clang e GCC não produzirão executáveis ​​tão pequenos sem alguns truques para remover a tabela de exceção. Este programa compila para 8520 bytes, incluindo a tabela de desenrolamento: O #include <unistd.h> int main() { char const s[] = "~}|{zyxwvutsrqponmlkjihgfedcba`_^]\\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#\"! !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~"; write( 1, s, sizeof s ); } assembly deve se sair muito melhor.
— Potatoswatter

Na verdade, eram exatamente 4k == 32768 caracteres binários. Acho que encontrei um bug no código de contagem de caracteres do SO.
— Ionoclast Brigham

1

Ruby, N = 27

Usa $completamente >.

$><<(''<<32<<33<<34<<35<<36<<37<<38<<39<<40<<41<<42<<43<<44<<45<<46<<47<<48<<49<<50<<51<<52<<53<<54<<55<<56<<57<<58<<59<<60<<61<<62<<63<<64<<65<<66<<67<<68<<69<<70<<71<<72<<73<<74<<75<<76<<77<<78<<79<<80<<81<<82<<83<<84<<85<<86<<87<<88<<89<<90<<91<<92<<93<<94<<95<<96<<97<<98<<99<<100<<101<<102<<103<<104<<105<<106<<107<<108<<109<<110<<111<<112<<113<<114<<115<<116<<117<<118<<119<<120<<121<<122<<123<<124<<125<<126<<126<<125<<124<<123<<122<<121<<120<<119<<118<<117<<116<<115<<114<<113<<112<<111<<110<<109<<108<<107<<106<<105<<104<<103<<102<<101<<100<<99<<98<<97<<96<<95<<94<<93<<92<<91<<90<<89<<88<<87<<86<<85<<84<<83<<82<<81<<80<<79<<78<<77<<76<<75<<74<<73<<72<<71<<70<<69<<68<<67<<66<<65<<64<<63<<62<<61<<60<<59<<58<<57<<56<<55<<54<<53<<52<<51<<50<<49<<48<<47<<46<<45<<44<<43<<42<<41<<40<<39<<38<<37<<36<<35<<34<<33<<32)

0

Scala, N = 69

\u0028\u0027\u0020\u0027\u0074\u006f\u0027\u007e\u0027\u0029\u002b\u002b\u0028\u0027\u007e\u0027\u0074\u006f\u0027\u0020\u0027\u0029

Usa os caracteres 01246789\bdefu(escape unicode) como uma maneira elegante de escrever (' 'to'~')++('~'to' ')map print.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.