Quy tắc 110 là một thiết bị tự động di động với một số tính chất thú vị. Mục tiêu của bạn là mô phỏng quy tắc 110 bằng càng ít ký tự càng tốt.
Đối với những người không biết, quy tắc 110 được mô phỏng từng dòng trong một lưới. Mỗi ô vuông trong một đường của lưới nhìn vào các ô vuông bên trên, bên trái và bên phải để xác định ô nào sẽ là ô.
current pattern 111 110 101 100 011 010 001 000
new cell 0 1 1 0 1 1 1 0
Đầu vào: các số từ 0 đến 39 đại diện cho ô vuông đầu vào thứ n hàng đầu, ở bất kỳ định dạng hợp lý nào (chuỗi được phân tách bằng dấu phẩy, danh sách, đối số hàm). Để chứa các ngôn ngữ được lập chỉ mục 1, các số cũng có thể được lập chỉ mục 1 và do đó nằm trong khoảng từ 1 đến 40.
Ví dụ đầu vào:
38,39
Đầu ra: Một lưới 40 x 40 đại diện cho automata đang chạy bao gồm hàng đầu tiên. Bạn nên để trống 0 và 1 như bất kỳ ký tự in có thể nhìn thấy nào. Không gian lưu trữ được cho phép, miễn là lưới thực tế có thể được phân biệt hợp lý. Phần dưới cùng của lưới có thể có một dòng mới nhưng không nên có các dòng trống giữa các dòng lưới.
Ví dụ đầu ra:
XX
XXX
XX X
XXXXX
XX X
XXX XX
XX X XXX
XXXXXXX X
XX XXX
XXX XX X
XX X XXXXX
XXXXX XX X
XX X XXX XX
XXX XXXX X XXX
v.v.
Lưu ý: Một câu hỏi tương tự về automata di động 1D đã được hỏi, nhưng tôi hy vọng rằng, bằng cách chỉ sử dụng một quy tắc, câu trả lời ngắn hơn có thể được viết.