Một con búp bê làm tổ của Nga, thường được gọi là búp bê Matryoshka , là một con búp bê chứa một phiên bản nhỏ hơn của chính nó, sau đó chứa một phiên bản nhỏ hơn của chính nó, chứa một phiên bản nhỏ hơn của chính nó, chứa một phiên bản nhỏ hơn của chính nó, chứa chứa một phiên bản nhỏ hơn của chính nó ... - cho đến cuối cùng, phiên bản cuối cùng trống rỗng. Một ví dụ:
Ngày nay, mục tiêu của bạn là mô phỏng truyền thống Nga này bằng cách viết một chương trình hoặc chức năng mà khi nó chứa N lần, nó sẽ tự in có chứa các bản sao N-1 của chính nó.
Ví dụ, chương trình búp bê abcd
sẽ có chương trình N = 3 abababcdcdcd
, chương trình này sẽ in chương trình N = 2, chương trình này sẽ in chương trình ababcdcd
N = 1 ban đầu abcd
, cuối cùng sẽ in N = 0, trống. Điều này về mặt lý thuyết sẽ làm việc cho bất kỳ giá trị hợp lý nào của N.
Quy tắc:
- Đây là chương trình TIO để giúp tạo các chương trình búp bê dựa trên chương trình của bạn
- Quy tắc chuẩn quine áp dụng
- Áp dụng sơ hở tiêu chuẩn
- 'Chứa' có nghĩa là trực tiếp ở trung tâm của phiên bản trước, vì vậy giải pháp của bạn phải có số byte chẵn dương. Một chương trình có độ dài 10 sẽ có một bản sao của bản gốc được chèn sau byte thứ năm, sau đó một bản khác sau byte thứ mười, v.v.
- Một khoảng trắng duy nhất được phép trong đầu ra
- Vì đây là môn đánh gôn , mục tiêu của bạn là làm cho chương trình N = 1 của bạn càng ngắn càng tốt.
- Một lời giải thích về mã của bạn sẽ được đánh giá cao
N
kích thước mã được đo là gì?