Вопрос

Это аналогичный вопрос для Как работает 2D правила автоматов? . Однако ответ там не дал мне то, что я ищу. В частности, я хочу иметь возможность рендерировать эти 2D клеточные автоматы формы: https: / /www.wolframscience.com/nks/p173---cellular-automata/ . Я не могу найти никакой ссылки в любом месте, который объясняет, как измениться между реальным числом и правилом роста. В 1D ситуация хорошо документирована, например, здесь: https://mathworld.wolfram.com/elementarycellularautomaton .html Но в 2D точное отображение битов не так не найден. Я бы очень хотел сделать программу, так что я могу, например, ввести номер 465, и он нарисует шаблон 465 из книги Wolfram. Другой ответ стека, который я связан с вышеупомянутым, обеспечивает возможное двоичное отображение, однако метод, приведенный там не дает то же количество, что и в ссылке Wolfram. Двоичное значение 465 - 111010001, что вообще не помогает. Эта конкретная форма основана на добавлении клетки, когда в настоящее время заняты ровно один сосед, поэтому мы не должны ожидать иметь 4 1 подряд, один для каждого из четырех соседей? И, чтобы сделать это еще более запутанным, последние две цифры, кажется, поменяются из описания, приведенного на самой странице Wolfram ... кажется ясно из другого переполнения стека, ответа на то, что есть не только одно возможное двоичное отображение, но многие, однако, Учитывая, что уже существует руководство с рисунками, указанными в номерах правил, я бы действительно хотел бы использовать эти конкретные номера правил. Спасибо.

Это было полезно?

Решение

Описание, приведенное на Страница, которую вы связаны с :

"В каждом случае последовательность базы 2 цифры для номера кода определяет правило следующим образом. Последнее цифру определяет, какого цвета центральная ячейка должна быть, если все его соседи были белыми на предыдущем шаге, и это тоже было белым. Второй на последнюю цифру указывает, что происходит, если все соседи белые, но сама центральная клетка черная. И каждая ранее цифра затем указывает, что должно произойти, если постепенно больше соседей черные. (Сравнить страницу 60.) ».

То, что вы можете пропустить, это то, что, если номер правила нечетной, пустая решетка нестабильна, поскольку белые клетки, окруженные другими белыми ячейками, будут спонтанно поворачивать черный. В частности, любые правила, число которых соответствует 1 модулю 4 (т.е. чья двоичная форма заканчивается в 01), как 465, «STROBING» , то есть пустая решетка будет чередуться между всеми белыми и всеми черными в каждом последовательном поколении.

В частности, это означает, что правило 465 не может соответствовать «добавить клетку, когда ровно один сосед в настоящее время занят». (Это было бы предположительно было бы правило 686 или 1010101110 в двоичном дворе.)

вместо этого, как вы правильно примечаете, 465 равны 111010001 в двоичном. Записанные в пяти группах из двух битов каждый, что дает 01 11 01 00 01. В каждой из этих групп самого правого бита в группе $ K $ (пронумерован вправо- Олево от 0 до 4) - это 1, если белая ячейка с $ k $ черных соседей превратится в черные в следующем генерировании, а левый бит составляет 1, если черные клетки С $ K $ Черные соседи останутся черным.

Это означает, что в соответствии с этим правилом белая ячейка превратится в черный цвет, если у него будет 0, 2, 3 или 4 черных соседей (поскольку самый крайний бит 1 в группах 0, 2, 3 и 4 подсчет справа) И черная ячейка останется черной, если она имеет ровно 3 черных соседей (с тех пор самое левое бит - 1 только в группе 3).

И действительно, имитация этого правила для 22 поколений, начиная с одного черного пикселя на белом фоне, создает изображение, соответствующее одному на связанной странице.


PS. Оказывается, что правило 465 является " Струбовый эквивалент " состояния-симметричного правила 558= 01000101110 2 , который отличается от правила 686 ровно одним битом и может быть описан как« Добавить ячейку, когда именно Один сосед занят, удалите клетку, когда ровно один сосед пуст ".

Запускалась с одной ячейки, кажется, что правила 558 и 686 тождественно развиваются, поскольку из этой отправной точки они, по-видимому, никогда не генерируют живую клетку с ровно тремя живыми соседями. Таким образом, на пронумерованных поколениях правило 465 стробов также выглядит идентичным им обоим.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с cs.stackexchange
scroll top