Atualizações: limite de tempo removido. Você deve ser capaz de descrever a saída - veja a nova regra.
Um pangram é uma frase que usa todas as letras do alfabeto pelo menos uma vez, como:
Um pangram perfeito usa todas as letras exatamente uma vez.
Considere escrever um programa que seja um pangram perfeito, usando os 95 caracteres imprimíveis ASCII (códigos hexadecimais 20 a 7E) como o alfabeto:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Esse programa deve conter exatamente 95 caracteres, com cada caractere ASCII imprimível ocorrendo exatamente uma vez, mas em qualquer ordem. (Portanto, existem 95! = 1,03 × 10 148 possibilidades.)
Sua tarefa é escrever este programa de forma que o número de caracteres ASCII imprimíveis impressos em stdout seja o mais alto possível (ou seja, prolífico).
Sua pontuação é o número de caracteres ASCII imprimíveis que seu programa produz (a quantidade total , não a quantidade distinta : AABC
notas 4 e ABC
notas 3) . A pontuação mais alta vence.
Detalhes
- A saída pode conter qualquer caractere (incluindo duplicatas), mas apenas instâncias dos 95 caracteres ASCII imprimíveis contam para a sua pontuação.
- Você pode usar esse JSFiddle para contar o número de caracteres ASCII imprimíveis em qualquer sequência.
- Se seu idioma não possui stdout, use a alternativa mais apropriada.
- O seu programa ...
- deve ter tempo de execução finito (o limite de tempo foi removido)
- deve ter saída finita
- pode conter comentários
- deve compilar e executar sem erros (não capturados)
- não deve solicitar ou exigir entrada
- deve ser invariável e determinista no tempo
- não deve usar bibliotecas externas
- não deve exigir uma conexão de rede
- não deve fazer uso de arquivos externos
- (você pode usar o próprio arquivo de programa, desde que a alteração do nome do arquivo não altere o comportamento do programa)
- Se essa tarefa for impossível, alguma linguagem é muito ruim.
- Você deve fornecer sua saída exata ou descrevê-la com precisão se for muito grande para caber em uma postagem . Você não precisa realmente executar seu programa. Enquanto ele seria executado em uma quantidade finita de tempo em um computador com uma quantidade ilimitada de memória é válido.
Exemplo
Este programa simplista do Python 2 é uma solução possível:
print 9876543210#!"$%&'()*+,-./:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjklmoqsuvwxyz{|}~
Ele gera 9876543210
10 caracteres ASCII imprimíveis, com 10 pontos.
a
seis quadrilhões de vezes, onde nem sequer é possível obter um limite superior preciso de contador de caracteres. Enfim, ainda tenho orgulho dos meus 95 anos, mesmo que pequenos. Tamanho não é tudo, você sabe.