Os autômatos celulares seguem regras simples, mas apresentam comportamento complexo. Sua origem remonta aos anos 1940 com o famoso matemático John Von Neumann. Para saber mais sobre esse tópico, consultar, por exemplo o wikipédia aqui.A figura a seguir foi a "semente" para a geração dos padrões que são mostrados nas figuras seguintes e da figura inicial desta postagem.
Figura inicial. |
Terceira geração. |
15a. geração. |
Código Scilab (sem comentários):
----------------------------------------------
clc; close; N = 100; Mt = (sign(rand(N,N,'normal'))+1)/2; Mt = 0*Mt; dn = 20; for q=dn:2*dn for p=dn:2*dn Mt(p,q)=1; Mt(p+2*dn,q)=1; Mt(p,q+2*dn)=1; Mt(p+2*dn,q+2*dn)=1; end end Mt(1,1)=1; Mt(N,N)=1; vx = []; vy = vx; for p=1:N for q=1:N if Mt(p,q)==1 then vx = [vx, p]; vy = [vy, q]; end end end close; plot(vx,vy,'.'); //pause; Pt = Mt; for k=2:25 for p=2:N-1 for q=2:N-1 s = Mt(p-1,q)+Mt(p,q-1)+Mt(p+1,q)+Mt(p,q+1); s = s + Mt(p+1,q+1) + Mt(p-1,q-1); s = s + Mt(p-1,q+1) + Mt(p+1,q-1); if (Mt(p,q)==1)&(s > 4) then Pt(p,q)=0; end if (Mt(p,q)==1)&(s < 2) then Pt(p,q)=0; end if (Mt(p,q)==1)&(s == 2) then Pt(p,q)=1; end if (Mt(p,q)==1)&(s == 3) then Pt(p,q)=1; end if (Mt(p,q)==0)&(s == 3) then Pt(p,q)=1; end end end Mt = Pt; vx = []; vy = vx; for p=1:N for q=1:N if Mt(p,q)==1 then vx = [vx, p]; vy = [vy, q]; end end end close; plot(vx,vy,'.'); end
Nenhum comentário:
Postar um comentário