Правило 110 - це стільниковий автомат з деякими цікавими властивостями. Ваша мета - імітувати правило 110 якомога менше символів.
Для тих, хто не знає, правило 110 моделюється по рядку в сітці. Кожен квадрат у рядку сітки дивиться на квадрати вгорі, вліво та вгорі праворуч, щоб визначити, якою вона повинна бути.
current pattern 111 110 101 100 011 010 001 000
new cell 0 1 1 0 1 1 1 0
Введення: числа від 0 до 39, що представляють n-й вхідний квадрат верхнього ряду, у будь-якому розумному форматі (рядок, розділений комами, список, аргументи функції). Для розміщення 1-індексованих мов цифри також можуть бути 1-індексованими і так становити від 1 до 40.
Приклад введення:
38,39
Вихід: Сітка розміром 40 x 40, яка представляє запущені автомати, включаючи перший рядок. Ви повинні залишити 0 порожнім і 1 як будь-який видимий символ друку. Додаткові пробіли дозволені до тих пір, поки фактично можна виділити фактичну сітку. У нижній частині сітки може бути новий рядок, але між рядками сітки не повинно бути порожніх рядків.
Приклад виводу:
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
тощо.
Примітка: Аналогічне запитання щодо 1D стільникових автоматів вже задавались, але я сподіваюся, що, використовуючи лише одне правило, можна писати короткі відповіді.