Eine russische Nistpuppe, besser bekannt als Matroschka-Puppe , ist eine Puppe, die eine kleinere Version von sich selbst enthält , die dann eine andere kleinere Version von sich selbst enthält , die eine kleinere Version von sich selbst enthält, die enthält eine kleinere Version von sich selbst ... - bis schließlich die letzte leer ist. Ein Beispiel:
Heute ist es Ihr Ziel, diese russische Tradition zu emulieren, indem Sie ein Programm oder eine Funktion schreiben, die, wenn sie sich N-mal enthält, sich selbst druckt und N-1 Kopien von sich selbst enthält.
Zum Beispiel hat das Puppenprogramm das Programm abcd
N = 3 abababcdcdcd
, das das Programm N = 2 ausgibt ababcdcd
, das das ursprüngliche Programm N = 1 ausgibt abcd
, das schließlich das leere Programm N = 0 ausgibt. Dies sollte theoretisch für jeden vernünftigen Wert von N funktionieren.
Regeln:
- Hier ist ein TIO-Programm, mit dessen Hilfe Sie Puppenprogramme basierend auf Ihrem Programm erstellen können
- Es gelten die Standard-Quine-Regeln
- Es gelten Standard-Regelungslücken
- "Enthält" bedeutet direkt in der Mitte der vorherigen Version, sodass Ihre Lösung eine positive gerade Anzahl von Bytes aufweisen muss. Bei einem Programm der Länge 10 wird eine Kopie des Originals nach dem fünften Byte und eine Kopie nach dem zehnten Byte usw. eingefügt.
- In der Ausgabe ist ein einzelnes abschließendes Leerzeichen zulässig
- Da dies Codegolf ist , ist es Ihr Ziel, Ihr N = 1-Programm so kurz wie möglich zu halten.
- Eine Erklärung Ihres Codes wäre willkommen
quelle
N
wird die Codegröße gemessen?Antworten:
Unterlast , 4 Bytes
N = 1: Probieren Sie es online.
N = 2: Probieren Sie es online.
N = 3: Probieren Sie es online.
Erläuterung:
Selbsterklärend, aber ich füge es trotzdem hinzu.
(...)S
druckt irgendetwas zwischen den Klammern zu STDOUTquelle
JavaScript,
3632 BytesNutzt die Tatsache aus, dass
Function.prototype.toString()
keine Argumente verwendet werden und ignoriert daher alle, die an sie übergeben werden.Teilweise inspiriert von der Lösung von user202729 .
Versuch es
quelle
JavaScript (Node.js) , 46 Byte
Volles Programm. Ist
console.log
also notwendig.Verwenden Sie eine Idee aus dieser Antwort , um einige Bytes zu sparen.
Probieren Sie es online! Probieren Sie es zweimal online! Probieren Sie es dreimal online aus!
Mein Ansatz ähnelt dem in Kevin Cruijssens Antwort verwendeten : Finde eine schachtelbare Struktur (in diesem Fall eine Funktion).
quelle
Gelee , 16 Bytes
Probieren Sie es online!
Verdoppelt: Probieren Sie es online!
Verdreifacht: Probieren Sie es online!
Jelly hat keine schachtelbare Struktur, aber die String-Literale werden automatisch terminiert.
Versucht verschiedene Ansätze, um zu sehen, ob sie kürzer sein können.
quelle
DipDup , 2 Bytes
Die Liste wird auf den Stapel verschoben und ohne die äußersten Klammern gedruckt.
N = 1: Online ausprobieren!
N = 2: Online ausprobieren!
N = 3: Online ausprobieren!
quelle
Gleichstrom , 4 Bytes
Ähnlich wie bei einigen anderen Antworten können Zeichenfolgen in ohne großen Aufwand verschachtelt werden , da
dc
sie Start- ([
) und End- (]
) Trennzeichen haben ("
dh nicht beide Aufgaben ausführen usw.).p
zu drucken.N = 1: Online ausprobieren!
N = 2: Probieren Sie es geschachtelt!
N = 3: Probieren Sie es nesteder!
quelle
Tcl , 12 Bytes
Probieren Sie es online!
Es ist nur eine andere Sprache, die dies auch hat.
quelle