Una bambola nidificante russa, più comunemente nota come bambola matrioska , è una bambola che contiene una versione più piccola di se stessa, che contiene quindi un'altra versione più piccola di se stessa, che contiene una versione più piccola di se stessa, che contiene una versione più piccola di se stessa, che contiene una versione più piccola di se stesso ... - fino a quando l'ultimo è vuoto. Un esempio:
Oggi il tuo obiettivo è emulare questa tradizione russa scrivendo un programma o una funzione che, quando si contiene N volte, si stamperà contenente N-1 copie di se stesso volte.
Ad esempio, il programma bambola abcd
avrà il programma N = 3 abababcdcdcd
, che stamperà il programma N = 2 ababcdcd
, che stampa il programma N = 1 originale abcd
, che infine stampa N = 0, che è vuoto. Questo dovrebbe teoricamente funzionare per qualsiasi valore ragionevole di N.
Regole:
- Ecco un programma TIO per aiutarti a generare programmi per bambole in base al tuo programma
- Si applicano le regole standard di Quine
- Si applicano scappatoie standard
- 'Contiene' significa direttamente al centro della versione precedente, quindi la soluzione deve avere un numero pari positivo di byte. Un programma di lunghezza 10 avrà una copia dell'originale inserito dopo il quinto byte, quindi un altro dopo il decimo byte ecc.
- Nell'output è consentito un singolo spazio bianco finale
- Dato che si tratta di code-golf , il tuo obiettivo è rendere il tuo programma N = 1 il più breve possibile.
- Una spiegazione del tuo codice sarebbe apprezzata
N
viene misurata la dimensione del codice?