Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
Содержание:
1. | Теория................................................................................................................................ | 3 |
2. | Описание программы....................................................................................................... | 4 |
3. | Пример работы программы............................................................................................. | 6 |
1. Теория
Клеточный автомат — это дискретная динамическая система, поведение которой полностью определяется локальными зависимостями или правилами одинаковыми для любого элемента (клетки).
Окрестность — это группа клеток, которые определенным образом расположены друг относительно друга.
Различают несколько стандартных окрестностей, наиболее распространенные это:
Окрестность фон Неймана — 5 клеток (сама клетка и 4 ее непосредственных не диагональных соседа). Окрестность Мура — 9 клеток - сама клетка и 8 ее непосредственных соседей, включая диагональные клетки.Ячейка может быть квадратной, треугольной и гексагональной формы.
Задание:
Написать программу для двумерного бесконечного клеточного автомат с клетками без памяти, имеющими форму квадрата, с окрестностью Мура. Правила изменений состояния клетки записываются следующим образом — L/A/C, где:
L - набор цифр от 0 до 8, определяет число "живых" соседей, при котором клетка остается "в живых",
A - набор цифр от 0 до 8, определяет число "живых" соседей при котором "мертвая" клетка становится "живой"
С - число, определяет число ходов "умирания" клетки.
Например — 23/3/14.
Означает, что клетка живет, если у нее 2 или 3 соседа, что при ровно трех соседях "рождается" новая клетка, и что клетка умирает за четырнадцать ходов.
Если число "живых" соседей у клетки не равняется ни одной из цифр из набора S, клетка начинает "умирать" и ее состояние увеличивается с каждым ходом, пока не достигнет C, после чего клетка пропадает. "Умирающая" клетка не участвует в подсчете числа "живых" соседей при расчете следующего шага. При рождении клетка получает первое состояние ("клетка жива").
В процессе работы программа должна визуально отображать состояние клеток поля в двух режимах:
1) Черно-белый режим: живые клетки отображаются белыми, мертвые — черными.
2) Градиентный режим: окраска клетки зависит от ее возраста. Чем больше возраст клетки т. е. меньше число ходов до умирания, тем меньшую яркость окраски должна иметь клетка.
2. Описание программы
IDE: Qt Creator 2.7.1
Начальное состояние системы считывается из текстового файла, с расширением «.txt». Входным массивом данных является квадратная матрица любой размерности. Параметры автомата задаются в полях L, A, C.

Рис. 1. Окно программы
Для загрузки тестового файла необходимо нажать кнопку «Выбрать файл». В появившемся диалоговом окне (рис. 2) выбрать нужный файл.

Рис. 2. Диалоговое окно выбора файла
После загрузки файла кнопки «Старт» и «Пошагово» разблокируются.
По нажатию «Старт» программа работает в автоматическом режиме — каждые 100 мс состояние клеточного автомата меняет. По нажатие «Стоп» - состояние останавливается на последнем. По нажатию «Пошагово» - состояние клеточного автомата изменится на один шаг.
3. Пример работы программы
Входные данные: L = 235678, A = 3468, C = 0, массив 60х60, заполненный нулями, кроме прямоугольника, который начинает с элемента с индексами (18, 18) и заканчивается и заканчивается (42, 42). Ниже приведен его вид:
9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
9 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 9
9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9
9 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 9
9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
Динамика состояний клеточного автомата:



0-ая итерация 4-ая итерация 8-ая итерация


12-ая итерация 16-ая итерация


