Seu desafio é criar um código mais curto no seu idioma de escolha que escreva em um .txt
arquivo o código mais longo para multiplicar dois números, tendo dois números como entrada e emitindo a resposta .
NENHUMA ENTRADA NECESSÁRIA PARA O SEU CÓDIGO QUE ESTÁ FAZENDO O TRABALHO ESCRITO !
O código do gerador e o código gerado podem estar em qualquer idioma
NÃO use séries ou progressões ilimitadas para aumentar o tamanho do arquivo de texto.
NÃO use declarações desnecessárias para aumentar a pontuação.
PONTUAÇÃO
( size of text file generated in bytes ) (without any unnecessary white spaces, tabs or newlines)
-----------------------------------------
( size of your code in bytes )
Vencedora
O vencedor será escolhido após 1 semana a partir de agora com a maior pontuação .
EDIT: intervalo de entrada no código multiplicando dois números deve estar entre -32768 a 32767
code-challenge
Mukul Kumar
fonte
fonte
+
para para*
no programa gerador que ele fornece, e você provavelmente já sabe disso, já que respondeu a essa pergunta também.Respostas:
perl / perl, pontuação ilimitada sob a regra original com alcance ilimitado
Aqui está um código que não ganha:
A saída tem este formato:
o arquivo de saída tem 181030 bytes, mas após a remoção de espaços e novas linhas, ele tem apenas 133109 bytes. então, a pontuação é 133109/248 = 536.7289 ...
Aqui está outro código que não vence - é o mesmo programa, exceto as 2 primeiras linhas:
o arquivo de saída possui 718138 bytes, mas após a remoção de espaços e novas linhas, ele tem apenas 532233 bytes. portanto, a pontuação é 532233/248 = ~ 2146. Melhor! usando 7 produz uma pontuação de ~ 8750, 8 produz ~ 35347, 9 produz ~ 149129, 10 produz 151100000 não espaço / 250 = 604.400 ....
é claro que podemos fazer isso o quanto quisermos. o tamanho do programa de origem, n, aumentará como O (log (n)). o tamanho do programa de saída é O (2 * n). O limite de 2 * n / log (n) conforme n vai para o infinito é claramente infinito; portanto, se eu apenas substituir no meu número grande favorito, um googolplex, vencerei (até que alguém sugira googolplex + 1).
fonte
add
que aceita dois parâmetros. Em seguida, ela preenche essa função com instruções de retorno parecidasreturn 39 if ($i == 13) && ($j == 3);
, usando todos os valores de$l
para$h
para$i
e$j
. Dobra inteligente da regra "apenas declarações desnecessárias".C, 27297/245 = 111,4
Código fonte (245 bytes)
Quando compilado e executado com dois argumentos inteiros na linha de comando, isso gera outro arquivo C contendo o código necessário para calcular seu produto e o compila com o
-E
sinalizador. Este sinalizador especifica que o compilador deve parar após o estágio de pré-processamento e gerar o código-fonte processado (que incluirá todo o conteúdo destdio.h
estdlib.h
).Arquivo de saída (27297 bytes)
********* LINES 13-1273 OMITTED *********
Resultado da execução do código de saída
O arquivo de saída é salvo como
add.c
, que pode ser compilado e executado normalmente:fonte
perl, 125 caracteres, pontuação 1.630.326.497.312
A mesma abordagem básica da minha outra resposta, mas desta vez limitada entre -32768 e 32767 pelas regras atualizadas, e todo o espaço em branco desnecessário foi removido completamente:
O programa de saída começa assim:
e termina:
O programa de saída tem 190 GB de comprimento. Mais precisamente, 203790812164 bytes. Pontuação = 203790812164/125 = 1630326497.312
fonte
Script de comando do Windows: ~ 1.000.000.000 pts
Código: 158 bytes
Saída: ~ 158000000000 bytes
A saída consiste basicamente em:
fonte