Todos sabemos o que é uma solução . Um quine invertido é um programa não vazio que imprime o inverso de seu código-fonte sem ler seu código-fonte e consiste apenas em caracteres ASCII imprimíveis (espaço através ~
).
Aqui, “inverso do código fonte” significa o seguinte: a saída do seu programa deve conter cada caractere ASCII imprimível (m - c) vezes, em que c é o número de vezes que o caractere ocorre no código e m é o máximo número de vezes que um caractere é repetido no seu código.
(Em outras palavras: seu código + sua saída = permutação de m vezes todos os ASCII imprimíveis.)
Por exemplo, se o seu programa for 12345
, então m = 1 , e você deve gerar qualquer permutação dessa string:
!"#$%&'()*+,-./06789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Se o seu programa for AAB
, então m = 2 , e você deverá gerar qualquer permutação de:
!!""##$$%%&&''(())**++,,--..//00112233445566778899::;;<<==>>??@@BCCDDEEFFGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ[[\\]]^^__``aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~
Observe como há dois se faltando A
e um faltando B
.
Embora um programa que contenha todos os caracteres ASCII imprimíveis e não produza nada seja um quine inverso válido (satisfazendo m = 1 ), essa resposta não seria muito competitiva, dada a sua extensão.
Você deve escrever um programa que seja uma solução invertida, conforme descrito no parágrafo acima. Como esse é o código-golfe , o programa mais curto em bytes será vencedor. Boa sorte!
fonte
duplicated for every repeated character in the source code
que faz toda a diferença no desafio11234512345
,?duplicated for every repeated character in the source code
significa ou se a submissão é válida para esse critério, porque o OP não abordou um algumas das perguntas aqui.Respostas:
Flak cerebral ,
221207 bytesInclui +1 para
-A
Experimente online!
fonte
[
cinco vezes, nem sempre. Observe que isso2
é removido apenas uma vez no exemplo. O desafio é um pouco confuso.+1
:)!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
abcdefghijklmnopqrstuvwxyz {|} ~ ` obteria uma pontuação melhor: /CJam , 17 bytes
Experimente online!
Impressões
Explicação
O objetivo era modificar o padrão quine
de modo que nenhum caractere seja repetido no programa. A razão para isso é que o CJam possui um operador diferente definido que podemos usar para remover caracteres do intervalo ASCII imprimível, mas isso não leva em consideração o número de ocorrências. Implementar isso manualmente provavelmente seria mais longo, então eu precisava garantir que todos os personagens aparecessem apenas uma vez e não precisássemos nos preocupar com as ocorrências.
fonte
Python 3 , 83 bytes
Experimente online!
Imprime
-0.375 False
.fonte
05AB1E ,
956160 bytes (não 58 b / c não gosto desse)Experimente online!
Resposta antiga invalidada por "apenas caracteres ASCII", muitos comandos não são válidos aqui.
Imprime
abcdefghijklmnopqrstuvwxyz012345678
uma vez, pois não há caracteres duplicados.Versão
BCDEFGHIKMNOPQRSTUVWXYZ
removida:Trabalho em andamento ... acho que ~ 60 bytes é o mais baixo possível sem caracteres não ASCII em 05AB1E ..
05AB1E , 58 bytes
Experimente online!
Imprime a saída x12 devido aos caracteres repetidos:
Também não termina corretamente, trabalhando nisso agora ...
Respostas antigas inválidas (devido a caracteres não ASCII) foram removidas, consulte o histórico de edições.
fonte
Java 8,
10699190 bytesfonte
i {
porque você já tem um espaçoclass i{/*!"#$%&'()+,-.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`bdefghjkmnopqrtuvwxyz|~*/}
suficiente? Ele contém todos os ASCII imprimíveis em seu código-fonte e não produz nada. A parte " duplicada para cada personagem repetido no código fonte " aplica-se para a saída, por isso mesmo ques
é duplicado noclass
e*
e/
são duplicados devido a/* */
, a saída de quatro vezes nada ainda não é nada.interface Z{}//!"#$%&'()*+,-.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY[\]^_`bdghjklmopqsuvwxyz|~
( 97 bytes )Javascript (ES6),
103101 bytesSolução antiga (103 bytes usando
alert
)Solução antiga (inválida) (96 bytes)
fonte
//
, o que significa que você deve imprimir os caracteres imprimíveis, com um/
removido. (Eu acho)