Đưa ra trạng thái của lưới Game of Life vuông, xác định xem nó có thể phát triển từ bất kỳ trạng thái nào trước đó hay chỉ có thể được tạo. Đó là, xác định xem tiểu bang có phải là tiểu bang "Vườn địa đàng" hay không .
Đầu vào
Một lưới các trạng thái, với 1 chỉ "sống" và 0 chỉ "chết". Bạn có thể chọn bất kỳ hai biểu tượng có thể phân biệt thay vì 0 và 1 nếu bạn muốn.
Độ dài cạnh của lưới sẽ không bằng 0, nhưng có thể là bất kỳ số tự nhiên 1 <= N <= 20.
Bất kỳ hoặc tất cả các ô bên ngoài lưới đầu vào có thể còn sống ở thế hệ này và bất kỳ hoặc tất cả chúng có thể còn sống ở thế hệ trước. Vũ trụ được xem xét là vô hạn, vì vậy không có điều kiện biên. Các cạnh của đầu vào không phải là các cạnh của vũ trụ. Cụ thể, lưới không bọc.
Đầu vào có thể ở dạng một chuỗi được phân tách bằng hàng hoặc một chuỗi đơn. Nếu bạn muốn, bạn có thể lấy chiều dài bên hoặc diện tích của lưới làm đầu vào bổ sung (trước hoặc sau lưới).
Các định dạng đầu vào được chấp nhận:
010,101,010
010101010
010
101
010
3 010101010
Đầu ra
"Đã tạo" nếu không có trạng thái trước có thể (bao gồm cả trạng thái lớn hơn lưới đầu vào) sẽ dẫn đến trạng thái đầu vào ở thế hệ tiếp theo.
"Đã tiến hóa" nếu tồn tại ít nhất một trạng thái trước đó có thể (bao gồm cả các trạng thái lớn hơn lưới đầu vào) sẽ dẫn đến trạng thái đầu vào ở thế hệ tiếp theo.
Bạn có thể sử dụng bất kỳ hai chuỗi hoặc số có thể phân biệt thay vì "Đã tạo" và "Đã tiến hóa" nếu bạn muốn.
Lưu ý rằng trạng thái trước có thể không cần phải khác biệt với đầu vào. Nếu một nhà nước có chính nó như thế hệ tiếp theo, thì nó nên được xem xét phát triển.
Các trường hợp thử nghiệm
010
101
010 Evolved
0101110100
0010101001
1011100110
0101111101
1001001111
1111001001
1011111010
0110011101
1001010100
0010111010 Created
Trường hợp thử nghiệm được tạo ra được lấy từ Trang trò chơi cuộc sống của Achim Flammenkamp .
Ghi chú
Cảm ơn trichoplax đã viết thử thách này và tôi đã chấp nhận nó từ đây
m
-by-n
, nếu tôi kiểm tra tất cả các2^(m*n)
trạng thái ban đầu có thể , độ phức tạp của chương trình sẽ lớn, nhưng nó giải quyết vấn đề bằng cách kiểm tra xem kết quả có khớp với đầu vào không