잘 아세요? 모두
접근? 모두
M = 30n = 30p = .7h =100;
%%
% 는 난수가 임계값 0.7 보다 큰지 여부에 따라 1 또는 0 으로 결정되는 30*30 매트릭스 a 를 생성합니다.
뭐 때문에? X =1:m.
뭐 때문에? Y =1:n.
R = 랜드 (1); %rand 는 0 부터 1 (1 제외) 까지의 난수를 생성합니다.
만약? R>P
A(x, y) =1;
그렇지 않으면요? A(x, y) = 0;
끝
끝
끝
%%
뭐 때문에? X =1:m.
뭐 때문에? Y =1:n.
만약? A(x, y)== 1
FX =;; Fy = [0,0,n, n]; Fill(fx, fy,' k'), hold? % 에 30*30 의 검은색 배경을 그립니다
뭐 때문에? X=2:m- 1
뭐 때문에? Y=2:n- 1
B(x, y)=a(x- 1, y- 1)+a(x- 1, y)+;
% 생명게임 규칙에 따라 행렬 A 의 요소 (X, Y) 주변 8 개 요소의 값 합계를 구합니다. 가장 바깥쪽 원 요소 주위에는 인접한 8 개 요소가 없기 때문입니다.
% 그래서 x 와 y 의 범위는 2:m- 1 과 2:n- 1 입니다.
만약? B(x, y) = = 2,c (x, y)=a(x, y);
% 만약 (X, Y) 주위에 두 개의 1 의 세포가 있다면, 즉 게임의 의미에서 두 개의 살아있는 세포가 있다면, 이 세포의 다음 생사는 원래의 생사와 관련이 있다.
엘세프? B(x, y)==3, c(x, y) =1;
% 만약 (X, Y) 주위에 세 개의 1 세포가 있다면, 즉 게임의 의미에서 두 개의 살아있는 세포가 있다면, 이 세포는 다음 순간에 생존할 것이다. (여기서 나는 1 이 살아 있다고 가정한다.)
그렇지 않으면요? C(x, y) = 0;
% 만약 (X, Y) 주변의 살아있는 세포가 이 두 가지 값, 즉 너무 많거나 너무 적다면, 이 세포는 다음 순간에 죽는다 (여기서 나는 0 이 죽음이라고 가정한다).
끝
끝
끝
%%
C( 1:m, 1)=a( 1:m,1);
C( 1:m, n)=a( 1:m, n); % 양쪽에 두 개의 열 추가
C( 1, 1:n)=a( 1,1:n); % 여기에 다음 두 줄을 추가해야한다고 생각하지만 원래 프로그램은 없습니다. 그렇지 않으면 누락된 부분은 0 이며 항상 검은색으로 표시됩니다.
C(m, 1:n)=a(m,1:n); % 행렬 표현 및 그리기는 행렬 회전과 같습니다. 행렬의 위, 아래, 위, 아래 두 줄이 누락된 경우 왼쪽과 오른쪽이 검은색으로 표시됩니다.
뭐 때문에? X =1:m.
뭐 때문에? Y =1:n.
만약? C(x, y)== 1
Fx=[x- 1, x- 1, x, x]; Fy=[y- 1, y, y, y-1]; Fill(fx, fy,' g'), hold? 에서
기타
끝
끝
끝
% 그림 C, 위와 같이 A 를 그립니다.
일시 중지 (.05)% 0.05 초 동안 일시 중지하고 변경 과정을 관찰합니다.
A = c;; % c 를 a 에 할당합니다. 즉, 이 시점에서 c 는 이전 순간의 a 로 간주되고 루프는 계속 그려집니다.
끝
% 이 프로세스는 임의의 30*30 매트릭스 A 를 생성하여 생명게임 규칙에 따라 매트릭스 A 의 중간 29*29 부분, 루프 100 번을 계산하고 표시하는 프로세스입니다.
% 는 그래프의 가장 바깥쪽 원이 변경되지 않았음을 알 수 있습니다.