ตุ๊กตาทำรังรัสเซียซึ่งเป็นที่รู้จักกันทั่วไปว่าเป็นตุ๊กตา Matryoshkaเป็นตุ๊กตาที่มีขนาดเล็กกว่าของตัวเองซึ่งมีอีกรุ่นที่เล็กกว่าของตัวเองซึ่งมีรุ่นที่เล็กกว่าของตัวเองซึ่งมีรุ่นที่เล็กกว่าของตัวเองซึ่ง มีเวอร์ชันที่เล็กกว่าของตัวเอง ... - จนกระทั่งในที่สุดอันสุดท้ายจะว่างเปล่า ตัวอย่าง:
วันนี้เป้าหมายของคุณคือการเลียนแบบประเพณีของรัสเซียนี้โดยการเขียนโปรแกรมหรือฟังก์ชั่นที่เมื่อมันมีตัวเอง N ครั้งจะพิมพ์ตัวเองที่มีสำเนาของตัวเอง N-1 ครั้ง
ตัวอย่างเช่นโปรแกรมตุ๊กตาabcd
จะมีโปรแกรมN = 3 abababcdcdcd
ซึ่งจะพิมพ์โปรแกรม N = 2 ababcdcd
ซึ่งพิมพ์โปรแกรมต้นฉบับ N = 1 abcd
ซึ่งในที่สุดก็พิมพ์ N = 0 ซึ่งว่างเปล่า ในทางทฤษฎีแล้วสิ่งนี้ควรใช้งานได้กับค่าที่สมเหตุสมผลของ N
กฎ:
- นี่คือโปรแกรม TIO ที่จะช่วยสร้างโปรแกรมตุ๊กตาขึ้นอยู่กับโปรแกรมของคุณ
- ใช้กฎมาตรฐาน Quine
- มีช่องโหว่มาตรฐาน
- 'มี' หมายถึงตรงกลางของรุ่นก่อนหน้าดังนั้นโซลูชันของคุณจะต้องมีจำนวนไบต์เป็นบวก โปรแกรมที่มีความยาว 10 จะมีสำเนาของต้นฉบับที่แทรกหลังจากไบต์ที่ห้าจากนั้นอีกหนึ่งโปรแกรมหลังจากไบต์ที่สิบเป็นต้น
- อนุญาตให้มีช่องว่างต่อท้ายเดียวในเอาต์พุต
- เนื่องจากนี่คือรหัสกอล์ฟเป้าหมายของคุณคือทำให้โปรแกรม N = 1 ของคุณสั้นที่สุดเท่าที่จะเป็นไปได้
- คำอธิบายของรหัสของคุณจะได้รับการชื่นชม
N
เป็นรหัสขนาดที่วัดได้?