Viết một khối văn bản hình chữ nhật mà khi được sắp xếp vào một tấm thảm Sierpinki , sử dụng các khối không gian có cùng kích thước cho các phần trống, sẽ tạo ra một chương trình tạo ra số lần lặp của tấm thảm.
Ví dụ: nếu khối văn bản của bạn là
TXT
BLK
sau đó chạy chương trình
TXTTXTTXT
BLKBLKBLK
TXT TXT
BLK BLK
TXTTXTTXT
BLKBLKBLK
nên xuất ra 1
vì hình dạng của chương trình đại diện cho lần lặp đầu tiên của thảm Sierpinki.
Tương tự, chạy
TXTTXTTXTTXTTXTTXTTXTTXTTXT
BLKBLKBLKBLKBLKBLKBLKBLKBLK
TXT TXTTXT TXTTXT TXT
BLK BLKBLK BLKBLK BLK
TXTTXTTXTTXTTXTTXTTXTTXTTXT
BLKBLKBLKBLKBLKBLKBLKBLKBLK
TXTTXTTXT TXTTXTTXT
BLKBLKBLK BLKBLKBLK
TXT TXT TXT TXT
BLK BLK BLK BLK
TXTTXTTXT TXTTXTTXT
BLKBLKBLK BLKBLKBLK
TXTTXTTXTTXTTXTTXTTXTTXTTXT
BLKBLKBLKBLKBLKBLKBLKBLKBLK
TXT TXTTXT TXTTXT TXT
BLK BLKBLK BLKBLK BLK
TXTTXTTXTTXTTXTTXTTXTTXTTXT
BLKBLKBLKBLKBLKBLKBLKBLKBLK
nên xuất 2 vì đây là hình dạng của lần lặp thảm Sierpinki thứ hai.
Chạy khối văn bản như là
TXT
BLK
nên xuất ra 0
bởi vì nó có thể được coi là lặp zeroth.
Điều này sẽ làm việc cho tất cả các lần lặp tiếp theo. (Ít nhất là về mặt lý thuyết, giả sử máy tính có bộ nhớ và tất cả.)
Chi tiết
- Các chương trình có thể không đọc hoặc truy cập thông tin về mã nguồn của họ. Đối xử với điều này giống như một thách thức nghiêm ngặt.
- Đầu ra đi đến thiết bị xuất chuẩn hoặc thay thế tương tự. Chỉ xuất số và một dòng mới tùy chọn. Không có đầu vào.
- Khối văn bản có thể chứa bất kỳ ký tự nào không được coi là dấu kết thúc dòng . Khối văn bản có thể chứa khoảng trắng.
- "Không gian trống" trong thảm phải bao gồm toàn bộ các ký tự không gian .
- Bạn có thể tùy ý giả sử tất cả các chương trình có một dòng mới.
Bạn có thể sử dụng đoạn mã ngăn xếp này để tạo một tấm thảm cho một khối văn bản nhất định tại bất kỳ lần lặp nào:
<style>#o,#i{font-family:monospace;}</style><script>function c(e){e=e.split("\n");for(var n=new Array(3*e.length),t=0;t<n.length;t++){var l=t%e.length;n[t]=e[l]+(t>=e.length&&t<2*e.length?e[l].replace(/./g," "):e[l])+e[l]}return n.join("\n")}function f(){for(i=document.getElementById("i").value,n=parseInt(document.getElementById("n").value);n>0;)i=c(i),n--;document.getElementById("o").value=i}</script><textarea id='i'placeholder='code block...'rows='8'cols='32'></textarea><br>Iterations <input id='n'type='text' value='1'><br><br><button type='button'onclick='f()'>Generate</button><br><br><textarea id='o'placeholder='output...'rows='8'cols='32'style='background-color:#eee'readonly></textarea>
Chấm điểm
Bài nộp có khối văn bản ban đầu nhỏ nhất theo khu vực (chiều rộng lần chiều cao) là người chiến thắng. Các TXT\nBLK
ví dụ là 3 bởi 2 cho điểm của 6. (Về cơ bản thắng mã ngắn nhất, vì thế mà thẻ mã golf.)
Tiebreaker đi đến trình đệ trình sử dụng ít ký tự riêng biệt nhất trong khối văn bản của họ. Nếu vẫn bị ràng buộc, câu trả lời được đăng đầu tiên chiến thắng.