Sappiamo tutti cos'è un quine . Un quine invertito è un programma non vuoto che stampa l'inverso del suo codice sorgente senza leggere il suo codice sorgente ed è costituito esclusivamente da caratteri ASCII stampabili (spazio attraverso ~
).
Qui, "inverso del codice sorgente" significa quanto segue: l'output del programma deve contenere ogni carattere ASCII stampabile (m - c) volte, dove c è il numero di volte in cui detto carattere si presenta nel codice e m è il massimo numero di volte che un carattere viene ripetuto nel tuo codice.
(In altre parole: il tuo codice + il tuo output = permutazione di m volte tutto stampabile-ASCII.)
Ad esempio, se il tuo programma è 12345
, allora m = 1 e dovresti emettere qualsiasi permutazione di questa stringa:
!"#$%&'()*+,-./06789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Se il tuo programma è AAB
, allora m = 2 e dovresti emettere qualsiasi permutazione di:
!!""##$$%%&&''(())**++,,--..//00112233445566778899::;;<<==>>??@@BCCDDEEFFGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ[[\\]]^^__``aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~
Nota come ci sono due A
s mancanti e una mancante B
.
Sebbene un programma che contenga tutti i caratteri ASCII stampabili e non produca nulla sia un valore inverso valido (soddisfacente m = 1 ), tale risposta non sarebbe molto competitiva, data la sua lunghezza.
Devi scrivere un programma invertito, come descritto nel paragrafo precedente. Poiché si tratta di code-golf , vincerà il programma più breve in byte. In bocca al lupo!
duplicated for every repeated character in the source code
che fa la differenza nella sfida
11234512345
?
duplicated for every repeated character in the source code
significhi o se l'invio è valido per quel criterio, perché l'OP non ha affrontato un alcune delle domande qui.