Я пытаюсь запустить симулятор MC для цепи Маркова, которая равномерно распределена между всеми матрицами NxN, у которых нет соседних единиц. Мой алгоритм должен заполнить пространство состояний, запустив цепочку несколько раз. Однако где-то с моей логикой что-то ужасно не так, и пространство состояний просто не заполняется. Любая помощь будет принята с благодарностью. Вот мой код.
import random
import numpy
M=numpy.zeros((52,52),dtype=int)
z=0
State_Space=[]
for i in range(1,100):
x=random.randint(1,50)
y=random.randint(1,50)
T=M
if T[x][y]==1:
T[x][y]=0
if T[x][y]==0:
T[x][y]=1
if T not in State_Space:
if T[x+1][y+1]==0 and T[x+1][y-1]==0 and T[x-1][y-1]==0 and T[x-1][y+1]==0:
State_Space.append(T)
M=T
else:
if T[x+1][y+1]==0 and T[x+1][y-1]==0 and T[x-1][y-1]==0 and T[x-1][y+1]==0:
M=T
print State_Space