Bạn phải tạo một chương trình tạo bản sao chính xác của chính nó vô tận cho đến khi dừng lại. Bất cứ điều gì trong chương trình ban đầu phải ở trong bản sao. Nói cách khác, các bản sao và chương trình gốc giống nhau về mọi mặt ngoại trừ việc các bản sao không phải ở cùng loại tệp với mã nguồn (chúng có thể là tệp văn bản).
Thí dụ:
Nếu chương trình ban đầu của tôi là:
for i in range(0, 10):
print i
bản sao cũng phải là:
for i in range(0, 10):
print i
Các quy tắc và làm rõ:
Sơ hở tiêu chuẩn bị cấm
Bản sao phải là bản sao chính xác của bản gốc
Các bản sao phải là các tệp có thể đọc được nếu có thể được đặt bên trong trình thông dịch chính xác
Chương trình có thể đọc mã nguồn riêng của nó
Tất cả các bản sao phải là các tệp riêng biệt
In chương trình của bạn ra là không được phép
Tên tệp được tính vào số byte
Các bản sao không phải ở cùng thư mục với tệp nguồn cũng như không chia sẻ cùng tên tệp
Ít nhất 1000 bản sao có thể được tạo
Chiến thắng:
Ít nhất là chiến thắng byte!
yes `<$0`|split -1
tốt hơn rất nhiều, nhưng điều đó làm tăng gấp đôi số byte ...