Сотовые автоматы Python для решения «растекающейся» симуляции - PullRequest
0 голосов
/ 11 октября 2018

Итак, у меня есть вложенный список из 50 строк и столбцов (и 50 списков во вложенном списке). Во вложенном списке есть случайные '1', '0' и ''.Я хочу, чтобы в начале случайный «0» превращался в «1», а «1» превращал другие «0» в «1».Кроме того, после временного шага я хочу, чтобы '1' преобразовал все окружающие его '0' в '1'.Я видел в Интернете, что сотовые автоматы - один из способов решения этой проблемы, но я не знаю, как это сделать без использования numpy.В этом примере, показанном на рисунке, ИСТИНА будет представлена ​​как «1», а ЛОЖЬ - как «0».load_bushfire возвращает вложенный список «1», «0» и «», которые представляют собой пиксели, представляющие карту.Нет необходимости визуализировать карту, так как у меня есть код для нее.Какие-либо предложения ?enter image description here

1 Ответ

0 голосов
/ 12 октября 2018

Чтобы перебрать все пиксели, окружающие элементы a[ i ],[ j] шаблон a[i+k][j+l] for k in [-1, 0, 1] for l in [-1, 0, 1 ] if k or l хорошо, вы должны проверить границы, я думаю.

Для особенно сложных правил вам может понадобиться два вложенных списка (матрицы) для более справедливыхмоделирование.На каждом шаге вы будете вычислять новый вложенный список на основе предыдущего, основываясь на ваших правилах.Пример см. https://github.com/mwharrisjr/Game-of-Life.После обработки каждого шага вы отображаете новый вложенный список.Лично я думаю, что вы бы лучше с троичной логикой.Топливо, нофюль, огонь (синий, белый, красный)

...