Wir alle wissen, was eine Quine ist. Ein invertiertes Quine ist ein nicht leeres Programm, das die Umkehrung seines Quellcodes druckt, ohne seinen Quellcode zu lesen. Es besteht ausschließlich aus druckbaren ASCII-Zeichen (Leerzeichen durch ~
).
Hier bedeutet "Inverse des Quellcodes" Folgendes: Die Ausgabe Ihres Programms muss jedes druckbare ASCII-Zeichen (m - c) mal enthalten, wobei c die Häufigkeit ist, mit der das Zeichen in Ihrem Code vorkommt, und m das Maximum ist Häufigkeit, mit der ein Zeichen in Ihrem Code wiederholt wird.
(Mit anderen Worten: Ihr Code + Ihre Ausgabe = Permutation von m mal allen druckbaren ASCII.)
Zum Beispiel, wenn Ihr Programm ist 12345
, dann m = 1 , und Sie ausgeben sollte jede Permutation dieser Zeichenfolge:
!"#$%&'()*+,-./06789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Wenn Ihr Programm ist AAB
, dann ist m = 2 , und Sie sollten eine beliebige Permutation von:
!!""##$$%%&&''(())**++,,--..//00112233445566778899::;;<<==>>??@@BCCDDEEFFGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ[[\\]]^^__``aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~
Beachten Sie, wie zwei A
und eines fehlen B
.
Obwohl ein Programm, das alle druckbaren ASCII-Zeichen enthält und nichts ausgibt, eine gültige inverse Quine ist (die m = 1 erfüllt ), wäre eine solche Antwort angesichts ihrer Länge nicht sehr wettbewerbsfähig.
Sie müssen ein Programm schreiben, das eine invertierte Quine ist, wie im obigen Absatz beschrieben. Da dies Code-Golf ist , gewinnt das kürzeste Programm in Bytes. Viel Glück!
duplicated for every repeated character in the source code
es den Unterschied in der Herausforderung ausmacht11234512345
?duplicated for every repeated character in the source code
bedeutet oder ob die Einreichung für dieses Kriterium gültig ist, da das OP nicht ganz auf ein Problem eingegangen ist Einige der Fragen hier.Antworten:
Brain-Flak ,
221207 BytesBeinhaltet +1 für
-A
Probieren Sie es online aus!
quelle
[
fünf Mal entfernen , nicht alle Male. Beachten Sie, dass dies2
im Beispiel nur einmal entfernt wird. Die Herausforderung ist allerdings etwas verwirrend.+1
:)!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
abcdefghijklmnopqrstuvwxyz {|} ~ ` eine bessere Punktzahl erzielen: /CJam , 17 Bytes
Probieren Sie es online aus!
Druckt
Erläuterung
Ziel war es, die Standard-Quine zu modifizieren
so dass kein Zeichen im Programm wiederholt wird. Der Grund dafür ist, dass CJam einen anderen Operator festgelegt hat, mit dem wir Zeichen aus dem druckbaren ASCII-Bereich entfernen können, der jedoch die Anzahl der Vorkommen nicht berücksichtigt. Die manuelle Implementierung wäre wahrscheinlich länger, daher musste ich sicherstellen, dass jedes Zeichen nur einmal erscheint und wir uns keine Sorgen über das Auftreten machen müssen.
quelle
Python 3 , 83 Bytes
Probieren Sie es online aus!
Druckt
-0.375 False
.quelle
05AB1E ,
956160 Bytes (nicht 58 b / c Ich mag das nicht)Probieren Sie es online aus!
Alte Antwort durch "Nur-ASCII-Zeichen" ungültig gemacht, viele Befehle sind hier nicht gültig.
Es wird einmal gedruckt,
abcdefghijklmnopqrstuvwxyz012345678
da keine doppelten Zeichen vorhanden sind.Version mit
BCDEFGHIKMNOPQRSTUVWXYZ
entfernt:In Arbeit ... Ich denke, ~ 60 Bytes sind so niedrig, wie Sie es ohne Nicht-ASCII-Zeichen in 05AB1E bekommen.
05AB1E , 58 Bytes
Probieren Sie es online aus!
Druckt die Ausgabe x12 aufgrund der wiederholten Zeichen:
Es endet auch nicht ganz richtig und arbeitet jetzt daran ...
Ungültige alte Antworten (aufgrund von Nicht-ASCII-Zeichen) wurden entfernt, siehe Bearbeitungsverlauf.
quelle
Java 8,
10699190 Bytesquelle
i {
da Sie bereits einen Platz habenclass i{/*!"#$%&'()+,-.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`bdefghjkmnopqrtuvwxyz|~*/}
aus? Es enthält alle druckbaren ASCII-Dateien im Quellcode und gibt nichts aus. Der Teil „ für jedes wiederholtes Zeichen im Quellcode dupliziert gilt allerdings mit dem Ausgang“ , so auchs
in dupliziertclass
und*
und/
sind aufgrund dupliziert/* */
, Ausgeben viermal nichts nichts ist nach wie vor.interface Z{}//!"#$%&'()*+,-.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY[\]^_`bdghjklmopqsuvwxyz|~
( 97 Bytes )Javascript (ES6),
103101 BytesAlte Lösung (103 Bytes mit
alert
)Alte (ungültige) Lösung (96 Bytes)
quelle
//
, dh Sie müssen die druckbaren Zeichen ausgeben, wobei eines/
entfernt wird. (Ich denke)