Dies ist eine alte Version des Dokuments!
code am anfang:(funktioniert)
import random import numpy as np import matplotlib.pyplot as plt # Größe der Matrix # Die Matrix wird zufällig mit Nullen und Einsen gefüllt def Matrix_füllen(M,zeilen,spalten): for i in range(0, zeilen): for j in range(0, spalten): if random.random() < 0.5: M[(i,j)]= 1 else: M[(i,j)]= 0 return M def Tripleeinheitsmatrix(D,zeilen,spalten): for i in range(0, zeilen): for j in range(0, spalten): if i==j: D[(i,j)] = 1 else: D[(i,j)] = 0 for i in range(0, zeilen): for j in range(0, spalten): if i==(j+1): D[(i,j)] = 1 for i in range(0, zeilen): for j in range(0, spalten): if j==(i+1): D[(i,j)] = 1 D[0,D.shape[1]-1] = 1 D[D.shape[1]-1,0] = 1 return D def Generationen(Matrix_füllen,Tripleeinheitsmatrix): def Matrizenmultiplikation(D,M): z = np.dot(D,M) k = np.dot(z,D) wandelmatrix = k- M return wandelmatrix wandelmatrix= Matrizenmultiplikation(D,M) Matrizenmultiplikation(D,M) #print (wandelmatrix) #Ursprungszelle Tod + genau 3 lebende Nachbarn = lebend #Ursprungszelle Lebend + genau 1 lebenden Nachbarn = tot #Ursprungszelle Lebend + 2 o. 3 Nachbarn = lebend #Ursprungszelle lebend + 4 oder mehr Nachbarn = tot def GameofLife(M,wandelmatrix): for i in range(0, zeilen): for j in range(0, spalten): if M[(i,j)] == 1 and (wandelmatrix[(i,j)]==2 or wandelmatrix[(i,j)]==3) : M[(i,j)]=1 elif M[(i,j)] == 1 and (wandelmatrix[(i,j)]==1 or wandelmatrix[(i,j)] in range(4,9)) : M[(i,j)]=0 elif M[(i,j)] == 0 and wandelmatrix[(i,j)]==3: M[(i,j)]=1 else: M[(i,j)]=0 return M return GameofLife(M,wandelmatrix) #print(M) #plt.imshow(M) #plt.show() def Wiederholungen(t): for i in range(t): Generationen(Matrix_füllen,Tripleeinheitsmatrix) def Schritt(): return Generationen(Matrix_füllen,Tripleeinheitsmatrix) t= int(input('Gib die Zeitschritte ein: ')) zeilen = int(input('Gib die Anzahl der Zeilen/Spalten ein: ')) spalten = zeilen M = np.zeros ((zeilen,spalten)) D = np.zeros ((zeilen,spalten)) wandelmatrix = np.zeros ((zeilen,spalten)) Matrix_füllen(M,zeilen,spalten) Tripleeinheitsmatrix(D,zeilen,spalten) Generationen(Matrix_füllen,Tripleeinheitsmatrix) #Wiederholungen(t)