Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 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-ая итерация