matlab的demo就有一个很经典的生命游戏life.m。你在命令框里输入life即可运行。都是元胞自动机,原理都差不了多少。只不过改改规则而已。
按照你的说法编了几行代码.。概率随意设的。
- %% 初始化
- m = 50; X = zeros(m,m); X(25,25) = 1;
- n = [m 1:m-1]; e = [2:m 1];
- s = [2:m 1]; w = [m 1:m-1];
- % 绘制初始图形
- [i,j] = find(X); figure(gcf);
- plothandle = plot(i,j,'.', 'Color','blue','MarkerSize',12);
- axis([0 m+1 0 m+1]);
- %% 演化
- for k = 1:50
- N = X(n,:) + X(s,:) + X(:,e) + X(:,w) + X(n,e) + X(n,w) + X(s,e) + X(s,w); %邻居数
- RAND = rand(m); %概率阵
- X = X | (N.*RAND>0.99); %换代
- [i,j] = find(X); set(plothandle,'xdata',i,'ydata',j); %绘图
- drawnow; pause(0.2); k
- end
复制代码
[ 本帖最后由 ChaChing 于 2010-6-25 23:55 编辑 ] |