更改

添加19,185字节 、 2015年12月11日 (五) 23:24
无编辑摘要
第203行: 第203行:  
效
 
效
 
果了。
 
果了。
 +
<gallery>
 +
File:屏幕快照 2015-12-11 23.06.21.png|一个窗户和它的
 +
八
 +
个
 +
邻
 +
居,
 +
分别
 +
是
 +
左
 +
上、上、
 +
右
 +
上、
 +
左
 +
、
 +
右
 +
、
 +
左
 +
下、
 +
右
 +
下
 +
</gallery>
 +
具
 +
体
 +
邻
 +
居的开灯
 +
与否
 +
如
 +
何影响
 +
该朋友是
 +
否
 +
开灯呢?这仍然需要我们为该朋友定
 +
义规则
 +
,
 +
比如
 +
“只有当
 +
八
 +
个
 +
邻
 +
居的灯都亮了我
 +
才能
 +
开灯”
 +
,
 +
这就是一
 +
条规则
 +
,
 +
“只要我这个时刻亮
 +
着
 +
灯,
 +
那么下一时刻
 +
无论邻
 +
居们什么
 +
情况
 +
我仍然亮灯”
 +
也是一
 +
条规则......
 +
。
 +
另外
 +
,
 +
还
 +
有一个
 +
初
 +
始状态
 +
的问题,
 +
也就是在一开
 +
始
 +
第一秒内
 +
哪
 +
些窗户应该开灯,
 +
那些应该关灯呢?我们
 +
完全
 +
可
 +
以让窗户
 +
后
 +
面的每个朋友自己
 +
随便决
 +
定,也就是
 +
初始
 +
时刻窗户的开灯
 +
状态
 +
是
 +
随
 +
机的。
 +
== 生命游戏 ==
 +
好了,
 +
上面
 +
基本讲清楚
 +
了大楼霓虹灯的
 +
工作原理
 +
了,
 +
下面我们开
 +
始
 +
设
 +
计
 +
一个
 +
切
 +
实的动画。
 +
按照刚才讲
 +
到的聪明的霓虹灯动画设
 +
计
 +
方法,我们为每个窗户
 +
后
 +
面的朋友设
 +
计规则
 +
如下:
 +
规则
 +
1
 +
:
 +
如果我现在开着灯,
 +
只要
 +
八
 +
个
 +
邻
 +
居中有
 +
2
 +
个
 +
或者
 +
3
 +
个
 +
人开灯了,
 +
那么下一时刻
 +
我
 +
才
 +
开灯,
 +
否则邻
 +
居亮灯
 +
数超
 +
过
 +
3
 +
个
 +
或者少于
 +
2
 +
个,我都会把灯关
 +
掉
 +
;
 +
规则
 +
2
 +
:
 +
如果我现在关着灯,
 +
那么当
 +
邻
 +
居中有
 +
3
 +
个人开灯,
 +
那么下一个时刻我就把灯打
 +
开。
 +
比如
 +
某
 +
个窗户和他
 +
邻
 +
居窗户的开灯
 +
状态
 +
如下图示:
 +
<gallery>
 +
File:屏幕快照 2015-12-11 23.08.20.png|
 +
</gallery>
 +
其中中
 +
心位置
 +
的窗户为你
 +
所
 +
在的窗户(也就是图中的
 +
4
 +
号
 +
)
 +
,在这个时刻,你观察
 +
旁边
 +
的
 +
八
 +
个
 +
邻
 +
居中有
 +
左
 +
上、
 +
右
 +
上、
 +
下三个窗户是亮灯的,
 +
那么
 +
按照规则
 +
2
 +
,
 +
你在下一个时刻应该
 +
把灯打开。
 +
这样,
 +
每个窗户
 +
后
 +
面的朋友都
 +
按照
 +
这
 +
两条规则
 +
行
 +
事
 +
,比
 +
如
 +
左
 +
上方
 +
1
 +
号
 +
这个
 +
邻
 +
居下
 +
一个时刻是
 +
否
 +
应该开灯呢?那么我们就应该
 +
考
 +
察这个窗户的
 +
8
 +
个
 +
邻
 +
居,
 +
以
 +
1
 +
号
 +
窗户
 +
为中
 +
心
 +
的
 +
9
 +
个方格如下图:
 +
<gallery>
 +
File:屏幕快照 2015-12-11 23.09.16.png|
 +
</gallery>
 +
那么
 +
根据规则
 +
1
 +
,
 +
下个时刻应该
 +
继续
 +
开着灯。
 +
注
 +
意,
 +
这个图中的
 +
右
 +
下
 +
部分标
 +
有
 +
1
 +
、
 +
2
 +
、
 +
3
 +
、
 +
4
 +
的
 +
4
 +
个窗户
 +
与
 +
上图中
 +
左
 +
上
 +
角标
 +
有
 +
1
 +
、
 +
2
 +
、
 +
3
 +
、
 +
4
 +
的
 +
4
 +
个窗户的开灯
 +
状态
 +
是一样的。他们都是
 +
同样的
 +
4
 +
个窗户。
 +
这样,
 +
当我们用同样的
 +
规则考虑
 +
大楼中
 +
所
 +
有的窗户的时候,
 +
整体大楼的动画就可以
 +
产生
 +
了。
 +
我们以一个
 +
随
 +
机的
 +
初始状态
 +
开
 +
始
 +
,
 +
根据
 +
那
 +
两条规则
 +
会
 +
产生
 +
什么样的大楼霓虹灯动画呢?
 +
让我们把
 +
镜
 +
头
 +
拉远
 +
,
 +
观察整个大楼:
 +
哇
 +
,
 +
一个奇
 +
妙
 +
的动画
 +
诞生
 +
了。
 +
下面是
 +
两张
 +
动画的
 +
截
 +
图
 +
(由
 +
50
 +
行
 +
50
 +
列窗户构成的大楼)
 +
:
 +
<gallery>
 +
File:屏幕快照 2015-12-11 23.10.13.png|
 +
</gallery>
 +
很怪
 +
异
 +
不是么?如果你看到
 +
能够运
 +
动的动画你会
 +
感
 +
觉
 +
更
 +
怪
 +
异
 +
,
 +
整个大楼的窗户就像
 +
沸腾
 +
了。
 +
实
 +
际
 +
上,
 +
我们可以把整个大楼霓虹灯游戏
 +
做
 +
在
 +
电脑
 +
里,
 +
让
 +
电脑程序代替
 +
那些居住在大楼
 +
里,
 +
不停机械的开灯关灯来
 +
完
 +
成你设
 +
计
 +
的
 +
无聊
 +
动画的可
 +
怜
 +
的朋友们。
 +
你可以到以下
 +
网址
 +
观看
 +
程序
 +
:
 +
gam
 +
e
 +
oflife/
 +
。在
 +
程序
 +
中,
 +
方格就
 +
代
 +
表窗户,
 +
黄
 +
色的格子就是亮灯的窗户,
 +
黑色的就是
 +
关灯的。
 +
你会
 +
发
 +
现,整个
 +
电脑屏幕
 +
像
 +
煮
 +
开了一样,不停的有方格变成
 +
黄
 +
色,也有方格变成黑色,
 +
而由这些亮方格构成的图案是
 +
五花八门
 +
,奇
 +
形
 +
怪
 +
状
 +
,看这是几个
 +
截
 +
图:
 +
<gallery>
 +
File:屏幕快照 2015-12-11 23.10.58.png|
 +
</gallery>
 +
这些图案有
 +
风筝
 +
、
 +
蝴蝶
 +
、
 +
桃心
 +
。如果观察动
 +
态结
 +
果,你会
 +
发
 +
现不可
 +
思议
 +
的
 +
东西
 +
还
 +
更
 +
多。
 +
首
 +
先,
 +
你会
 +
发
 +
现一种
 +
被
 +
人们
 +
称作
 +
“
 +
滑翔
 +
机”
 +
的
 +
结
 +
构,
 +
他是由几个格子构成的一个动
 +
态
 +
的
 +
结
 +
构,
 +
随
 +
着时间的
 +
推移
 +
,他会
 +
从屏幕
 +
的一
 +
段走
 +
到
 +
另
 +
一
 +
端
 +
,下面是“
 +
滑翔
 +
机”行
 +
走
 +
的
 +
原理
 +
:
 +
<gallery>
 +
File:屏幕快照 2015-12-11 23.12.12.png|
 +
</gallery>
 +
1
 +
2
 +
3
 +
4
 +
5
 +
在
 +
5
 +
步
 +
内,
 +
“
 +
滑翔
 +
机”
 +
结
 +
构
 +
往右
 +
下方行
 +
走
 +
了一个格子。你可以看到,在第
 +
五步
 +
内
 +
黄
 +
色亮
 +
点组成的
 +
结
 +
构
 +
与
 +
第一
 +
步
 +
的
 +
结
 +
构
 +
完全
 +
一样,只不
 +
过
 +
位置完全
 +
平移
 +
了。
 +
“
 +
滑翔
 +
机”会
 +
偶尔
 +
在
 +
屏幕
 +
的一个
 +
角落
 +
里闪现出来,
 +
步态缓慢
 +
的
 +
移
 +
动到
 +
另
 +
一
 +
角
 +
,
 +
就好像一个
 +
悠闲
 +
的
 +
散步者
 +
,
 +
在楼宇的窗
 +
户间
 +
移
 +
动着
 +
。
 +
值
 +
得
 +
注
 +
意
 +
的是,你可
 +
以
 +
推敲
 +
一下,
 +
“
 +
滑翔
 +
机”
 +
的每一
 +
步移
 +
动都
 +
完全符
 +
合我们上
 +
面定
 +
义
 +
的
 +
两条
 +
动画
 +
规则
 +
。
 +
我们的游戏还有其他的
 +
壮
 +
观
 +
景象
 +
:看
 +
这
 +
边
 +
由多个亮窗子构成的
 +
两
 +
个“
 +
村落
 +
”
 +
分处于
 +
大楼
 +
的
 +
角落彼此
 +
没有来
 +
往
 +
,
 +
然而一个
 +
“
 +
村落
 +
”
 +
发射
 +
了一个
 +
“
 +
滑翔
 +
机”
 +
对另
 +
一个
 +
“
 +
村落
 +
”
 +
展
 +
开了
 +
进
 +
攻
 +
,而
 +
另
 +
一个
 +
“
 +
村落
 +
”
 +
则
 +
由
 +
于
 +
这个
 +
“
 +
滑翔
 +
机”
 +
的到来
 +
被
 +
打
 +
破
 +
了
 +
原
 +
先的
 +
寂静
 +
开
 +
始沸腾
 +
起来。
 +
偶
 +
尔
 +
你会看到一个
 +
村落逐渐
 +
变大、
 +
分化
 +
成
 +
两
 +
个
 +
部分分别进
 +
行
 +
繁衍......
 +
,
 +
这里的
 +
语言
 +
不
 +
能穷尽
 +
这
 +
个游戏的
 +
所
 +
有可
 +
能情况
 +
。
 +
该游戏有一个好
 +
听
 +
的
 +
别名
 +
:
 +
“
 +
生命
 +
游戏
 +
”
 +
,
 +
这是由
 +
计算
 +
机
 +
科
 +
学
 +
家
 +
Joh
 +
n
 +
c
 +
onw
 +
ay
 +
在上个
 +
世纪
 +
50
 +
年代发
 +
明的。为什么
 +
叫做
 +
“
 +
生命
 +
游戏”呢?
 +
其实你不妨
 +
大
 +
胆运
 +
用你
 +
的想
 +
象力
 +
,
 +
认
 +
为这个
 +
游戏
 +
创造
 +
了一个
 +
“
 +
活生生
 +
的”
 +
宇宙。
 +
也就是
 +
说
 +
你和你的朋友们
 +
遵循
 +
简单的
 +
规则产生
 +
的集体楼
 +
宇霓虹灯动画
 +
创造
 +
了一个宇宙,
 +
这个宇宙就
 +
镶嵌
 +
在你们的楼宇的窗户之间。
 +
该宇宙
 +
按照
 +
自己
 +
的
 +
规律
 +
不断
 +
演化
 +
着。
 +
我们可以把闪亮的格子看
 +
作
 +
是这个
 +
虚拟
 +
宇宙中的
 +
生命
 +
体,
 +
这样,
 +
它们不
 +
停的
 +
演化
 +
、
 +
繁殖
 +
、
 +
灭亡
 +
。
 +
== 从霓虹灯到方格宇宙 ==
 +
这一
 +
切又
 +
意味
 +
着
 +
什
 +
么呢?
 +
从
 +
霓
 +
虹灯的
 +
例
 +
子
 +
中我们
 +
体
 +
会
 +
到了系
 +
统
 +
的
 +
深层含
 +
义
 +
。什
 +
么是
 +
系
 +
统
 +
?由多个
 +
部分
 +
组成的整体就是一个系
 +
统
 +
,上
 +
面
 +
提
 +
到的霓虹灯的
 +
例
 +
子就是一个系
 +
统
 +
,
 +
它是由
 +
多个小灯泡的组合
 +
形
 +
成的一个霓虹灯整体;
 +
人类
 +
社
 +
会也是一个系
 +
统
 +
,
 +
各
 +
种
 +
各
 +
样的人构成了这
 +
个系
 +
统
 +
;
 +
“
 +
生命
 +
游戏”也
 +
是一个系
 +
统
 +
,多个方格
 +
格子组成了
 +
它。
 +
仅仅
 +
了
 +
解
 +
系
 +
统
 +
的
 +
部分
 +
并不
 +
能
 +
了
 +
解
 +
整个系
 +
统
 +
。
 +
这就好像你
 +
能
 +
很
 +
清楚
 +
的了
 +
解
 +
到每个单
 +
独
 +
灯泡的闪烁
 +
状态
 +
并不
 +
能
 +
帮助
 +
你
 +
理
 +
解
 +
多
 +
个小灯泡构成的霓虹灯图案如
 +
何
 +
的
 +
道
 +
理
 +
一样。
 +
要想
 +
知道
 +
霓虹灯整体的图案,
 +
你
 +
必须
 +
要“
 +
跳
 +
出
 +
来”
 +
,
 +
也就是
 +
站
 +
在一个
 +
更
 +
高
 +
的
 +
角度
 +
来观察这个霓虹灯的整体,
 +
而
 +
忽略
 +
每一个
 +
具
 +
体灯泡的
 +
细节
 +
。
 +
我们
 +
常
 +
说
 +
的只
 +
见树
 +
木
 +
不
 +
见森林
 +
正是
 +
揭露
 +
了观
 +
察系
 +
统
 +
的时
 +
候太
 +
重视
 +
局
 +
部
 +
而
 +
忽略
 +
整体
 +
的这个
 +
弊
 +
端
 +
。
 +
我们学到的
 +
科
 +
学方法一
 +
直
 +
在
 +
运
 +
用
 +
分
 +
解
 +
、还
 +
原
 +
的方法。
 +
比如要
 +
研究
 +
一
 +
台
 +
电
 +
视
 +
机,
 +
我们就需
 +
要把这
 +
台
 +
电
 +
视
 +
机
 +
拆
 +
开,
 +
看看每一个
 +
部
 +
件
 +
的
 +
工作
 +
机
 +
理
 +
,这
 +
显
 +
然是有
 +
效
 +
的,
 +
但
 +
是正如你
 +
仅仅
 +
有一
 +
大
 +
堆
 +
电
 +
子
 +
元件
 +
而不会正
 +
确
 +
的组合它们就不
 +
能
 +
组
 +
装
 +
一
 +
台
 +
电
 +
视
 +
机一样,
 +
单
 +
纯
 +
运
 +
用
 +
分
 +
解
 +
还
 +
原
 +
的
 +
老
 +
方
 +
法是不
 +
能够
 +
理
 +
解
 +
系
 +
统
 +
。这
 +
又
 +
是为
 +
什么
 +
呢
 +
?
 +
原
 +
因是
 +
系
 +
统
 +
的
 +
特性
 +
一方
 +
面体
 +
现在组
 +
成
 +
部分
 +
的
 +
性质
 +
上,
 +
而
 +
更
 +
多的
 +
则
 +
取
 +
决于
 +
系
 +
统各
 +
个
 +
部分
 +
的
 +
相互
 +
之间的关系上。
 +
正是由
 +
于
 +
系
 +
统
 +
中
 +
各部分
 +
的
 +
相互
 +
关
 +
系的复杂
 +
性
 +
才
 +
导致
 +
了系
 +
统
 +
的复杂
 +
性
 +
和不可
 +
理
 +
解性
 +
。观察下面的图:
 +
<gallery>
 +
File:屏幕快照 2015-12-11 23.13.33.png|
 +
</gallery>
 +
我们可以
 +
认
 +
为多个
 +
蓝
 +
色的点构成了一个系
 +
统
 +
,
 +
而每个点之间的
 +
连线
 +
就是系
 +
统
 +
组成
 +
部分
 +
之
 +
间的
 +
联
 +
系。
 +
为什么系
 +
统
 +
很难
 +
理
 +
解
 +
呢?
 +
原
 +
因是点之间的
 +
连线
 +
太复杂了。
 +
假
 +
如一个系
 +
统
 +
由
 +
n
 +
个点
 +
组成,
 +
那么
 +
所
 +
有可
 +
能
 +
的点之间的
 +
连线
 +
关系就有
 +
2
 +
(n-
 +
1
 +
)(
 +
n-2)/2
 +
种
 +
情况
 +
,比
 +
如
 +
n=
 +
1
 +
0
 +
0
 +
,那
 +
么
 +
连线
 +
的可
 +
能
 +
性
 +
就是
 +
2
 +
48
 +
51
 +
,不用
 +
算
 +
了
 +
,这个
 +
数
 +
字已经
 +
远远超
 +
过了当
 +
前
 +
的宇宙
 +
年
 +
龄
 +
。我们之
 +
所
 +
以
 +
对
 +
系
 +
统
 +
概念
 +
感
 +
到很难
 +
理
 +
解
 +
正是由
 +
于
 +
系
 +
统
 +
组成
 +
部分
 +
之间关系的复杂
 +
性
 +
。
 +
而当我们用还
 +
原
 +
的方法
 +
研究
 +
系
 +
统
 +
的时候,
 +
也就是要
 +
研究
 +
系
 +
统
 +
中单个点的
 +
性质
 +
,
 +
我们就
 +
必须
 +
切
 +
断该点
 +
与
 +
其他点的
 +
联
 +
系,
 +
这当
 +
然方
 +
便
 +
我们
 +
研究
 +
该点,
 +
但
 +
是当
 +
切
 +
断它
 +
与
 +
其它点的
 +
联
 +
系的时候,
 +
我们已经
 +
严重
 +
破
 +
坏
 +
了系
 +
统
 +
的
 +
性
 +
质
 +
,
 +
看不到了系
 +
统各部分
 +
之间的
 +
联
 +
系了。
 +
在霓虹灯的
 +
例
 +
子中,
 +
当我们把
 +
目光
 +
集中到单个灯泡
 +
上的时候,
 +
我们就是
 +
采
 +
用还
 +
原分
 +
解
 +
的方法把
 +
注
 +
意
 +
力
 +
集中到了一个点,
 +
而没有看到该灯泡
 +
与
 +
其
 +
它灯泡之间的
 +
联
 +
系,
 +
所
 +
以我们不
 +
能够清楚
 +
整体霓虹灯的图案
 +
与
 +
动画。
 +
好了,
 +
到这里如果你已经
 +
完全理
 +
解
 +
或者
 +
隐约
 +
理
 +
解
 +
了上面
 +
所讲
 +
的系
 +
统
 +
概念
 +
,
 +
那么你已经
 +
取
 +
得了一个
 +
重
 +
大的
 +
进步
 +
。
 +
下面我们
 +
再
 +
来看看系
 +
统
 +
的
 +
另外
 +
一个
 +
性质
 +
。
 +
我们都
 +
知道
 +
计算
 +
机是由
 +
硬件
 +
和
 +
软件
 +
组成的。
 +
什么是
 +
硬件
 +
什么
 +
又
 +
是
 +
软件
 +
呢?
 +
运
 +
用我们
 +
刚刚
 +
熟悉
 +
的系
 +
统
 +
的
 +
概念
 +
不难回答,
 +
广
 +
义
 +
上来
 +
讲
 +
构成系
 +
统
 +
的
 +
各
 +
个单点就是
 +
硬件
 +
,
 +
而点
 +
与
 +
点之间的
 +
连线
 +
关系以
 +
及
 +
这些关系的变
 +
化
 +
就是
 +
软件
 +
。比
 +
如一
 +
台
 +
计算
 +
机系
 +
统
 +
的
 +
硬件
 +
部分
 +
是由
 +
CPU
 +
、内
 +
存
 +
、
 +
硬盘
 +
、
 +
显
 +
示
 +
器
 +
、
 +
键盘
 +
鼠
 +
标
 +
等等
 +
部
 +
分
 +
组成,
 +
那么
 +
软件
 +
就是
 +
运
 +
用这些
 +
硬件
 +
的一种组合方法。
 +
比如
 +
Wo
 +
r
 +
d
 +
程序
 +
这个
 +
软件
 +
就是把
 +
键盘
 +
输入
 +
的
 +
信息
 +
经过
 +
CPU
 +
和内
 +
存
 +
的
 +
处理显
 +
示到
 +
显
 +
示
 +
器
 +
上,这整个过
 +
程
 +
就是一个
 +
软件
 +
。当然我们
 +
这里的
 +
叙述忽略
 +
了很多
 +
技
 +
术
 +
细节
 +
,而
 +
仅仅
 +
在
 +
概念
 +
形
 +
式
 +
上
 +
进
 +
行
 +
讨
 +
论
 +
。我
 +
们
 +
知道硬件
 +
构成了
 +
软件
 +
的
 +
基
 +
础
 +
,
 +
显
 +
然你没有
 +
硬盘
 +
、内
 +
存
 +
、
 +
CPU
 +
这些
 +
硬件
 +
是不可
 +
能
 +
执
 +
行
 +
任
 +
何
 +
软件
 +
程序
 +
的,
 +
但
 +
反过来,
 +
软件
 +
又
 +
是
 +
独立
 +
于
 +
硬件
 +
的
 +
某
 +
种
 +
特
 +
有的
 +
东西
 +
。因
 +
此
 +
你在一
 +
台
 +
PIII
 +
的机
 +
器
 +
上
 +
运
 +
行
 +
Wo
 +
r
 +
d
 +
程序
 +
和在
 +
另
 +
一
 +
台
 +
PII
 +
上
 +
运
 +
行该
 +
程序
 +
一样(
 +
除
 +
了
 +
速
 +
度
 +
不同)
 +
。
 +
知道
 +
了
 +
硬件
 +
与
 +
软件
 +
之间的关系有什么用
 +
处
 +
呢?它可以
 +
帮助
 +
我们
 +
解
 +
答关
 +
于生命
 +
、
 +
智
 +
能
 +
、
 +
社
 +
会
 +
等等
 +
难以
 +
理
 +
解
 +
的复杂
 +
事
 +
物
 +
。
 +
比如上面
 +
介绍
 +
的“
 +
生命
 +
游戏”
 +
就是一个很好的
 +
例
 +
子。
 +
因为整个
 +
游戏的过
 +
程
 +
就是一个
 +
软件
 +
,这
 +
个
 +
软件
 +
无论运
 +
行在
 +
何
 +
种
 +
硬件介质
 +
中都是
 +
无
 +
关
 +
紧
 +
要的。
 +
所
 +
以我们
 +
用大楼窗户
 +
的开灯
 +
与
 +
关
 +
灯可以
 +
完
 +
成“
 +
生命
 +
游戏”
 +
,而
 +
运
 +
用
 +
电
 +
脑屏幕
 +
中的
 +
闪烁的方格
 +
也可以来
 +
完
 +
成该游戏。
 +
显
 +
然,
 +
我们现实的
 +
生命
 +
过
 +
程
 +
要
 +
远远
 +
比
 +
生命
 +
游戏复杂得多,
 +
然而它也很有可
 +
能
 +
是
 +
一种
 +
软件
 +
的过
 +
程
 +
,而
 +
与运
 +
行该
 +
软件
 +
的
 +
硬件
 +
没有关系。
 +
同样的,
 +
人类的
 +
智
 +
能
 +
也是一种复杂的
 +
软
 +
件
 +
过
 +
程
 +
,
 +
用人类的头
 +
脑能够完
 +
成的
 +
思
 +
维智
 +
能
 +
过
 +
程
 +
也同样
 +
能
 +
在
 +
另
 +
一种
 +
介质
 +
:
 +
计算
 +
机中实现。
 +
这
 +
也正是“人
 +
工
 +
智
 +
能
 +
”的
 +
理论
 +
来
 +
源
 +
。
 +
进
 +
一
 +
步
 +
,
 +
我们可以大
 +
胆
 +
设想:
 +
把整个宇宙都
 +
理
 +
解
 +
为一种
 +
运算
 +
的
 +
软件
 +
过
 +
程
 +
,
 +
这样,
 +
完
 +
成该
 +
运算
 +
过
 +
程
 +
的
 +
硬件介质
 +
是
 +
无
 +
关
 +
紧
 +
要的,
 +
而关
 +
键
 +
是
 +
软件
 +
过
 +
程
 +
。在“
 +
生命
 +
游戏”
 +
中,
 +
我们
 +
正是
 +
创造
 +
了一种宇宙
 +
演化
 +
的过
 +
程
 +
。
 +
在游戏中,
 +
不同的方格可以
 +
理
 +
解
 +
为
 +
抽
 +
象
 +
的宇宙
 +
空
 +
间,
 +
而
 +
程序运
 +
行的
 +
嘀嗒声
 +
正是这个
 +
虚拟
 +
宇宙中的时间。在“
 +
生命
 +
游戏”中,我们
 +
规
 +
定了每个格子的
 +
运
 +
行
 +
规则
 +
而得出了一个
 +
虚拟
 +
的宇宙,如果我
 +
们设
 +
计
 +
其他不同的
 +
规则
 +
会得到什么样的宇宙呢?
 +
进
 +
一
 +
步
 +
的,在大楼霓虹灯的比
 +
喻
 +
中,如果我
 +
们
 +
允许
 +
每个窗户里面灯的颜色有多种,每个窗户的
 +
邻
 +
居窗户不
 +
仅仅
 +
是
 +
8
 +
个,而可以是
 +
24
 +
个
 +
或者
 +
48
 +
个
 +
能演化
 +
出什么样的宇宙呢?
 +
更进
 +
一
 +
步
 +
设想,如果我们
 +
运
 +
行的游戏是在一个三
 +
维空
 +
间中
 +
或者四
 +
维空
 +
间中
 +
又
 +
是什么样的呢?
 +
所
 +
有这一系列的问题几
 +
乎
 +
可以
 +
写
 +
成一
 +
本
 +
教
 +
科
 +
书
 +
了,当
 +
然这
 +
本
 +
教
 +
科
 +
书
 +
中并不
 +
教
 +
我们
 +
牛顿
 +
定
 +
律
 +
,而是一
 +
套
 +
关
 +
于
 +
我们自己的
 +
虚拟
 +
宇宙的
 +
物
 +
理
 +
学
 +
知识
 +
。我
 +
们为什么一定要学
 +
习
 +
这个宇宙的
 +
科
 +
学?难
 +
道
 +
我们不
 +
能
 +
自己
 +
作
 +
上
 +
帝
 +
创造
 +
一个
 +
全
 +
新
 +
的宇宙么?
 +
嗯
 +
,我们就把我们的宇宙
 +
叫做
 +
“方格宇宙”吧,下面就来看看这个“方格宇宙”有什么
 +
性质
 +
。
 +
== 细胞自动机 ==
 +
下面的
 +
篇幅
 +
我们
 +
将
 +
具
 +
体
 +
讨
 +
论
 +
我们的“方格宇宙”的
 +
细节性质
 +
和
 +
规律
 +
。实
 +
际
 +
上,
 +
“方格宇
 +
宙”有一个学
 +
名叫作
 +
“
 +
细胞
 +
自动机”
 +
或者
 +
“
 +
元胞
 +
自动机”,
 +
英文
 +
名
 +
字是“
 +
Cellular Automata
 +
”,
 +
下面的
 +
讨
 +
论
 +
中,“方格宇宙”和“
 +
细胞
 +
自动机”这
 +
两
 +
个
 +
名
 +
字我
 +
将混
 +
合
 +
使
 +
用,你要
 +
知道
 +
这
 +
两
 +
个
 +
指同一个
 +
东西
 +
就可以了。
 +
一
 +
般
 +
的,一个
 +
细胞
 +
自动机是由这几个要
 +
素
 +
构成的:
 +
细胞
 +
、
 +
细胞空
 +
间、
 +
邻
 +
居、
 +
规则
 +
。下面
 +
分别
 +
叙述
 +
。<br />
 +
 +
(
 +
1
 +
)
 +
细胞<br />
 +
 +
在
 +
细胞
 +
自动机中,一个小格子就是一个
 +
细胞
 +
。在大楼霓虹灯动画中的窗户就是一个
 +
细胞
 +
。
 +
细胞
 +
具
 +
有
 +
状态
 +
,比如大楼霓虹灯中每个窗户的开灯还是关灯就是
 +
细胞
 +
的
 +
状态
 +
。我们把每一个
 +
细胞
 +
的
 +
所
 +
有可
 +
能状态
 +
的集合
 +
叫做
 +
细胞
 +
的
 +
状态
 +
集。在大楼霓虹灯中每个窗户有开灯关灯
 +
两
 +
个
 +
状
 +
态
 +
,我们可以用集合的
 +
符号
 +
表示为
 +
{
 +
开灯,关灯
 +
}
 +
,因
 +
此
 +
这是一个
 +
两状态
 +
的集合。
 +
更
 +
一
 +
般
 +
的,
 +
一个
 +
细胞
 +
可
 +
能
 +
有
 +
n
 +
种
 +
状态
 +
。
 +
每一个
 +
状态
 +
都可以给他
 +
赋予
 +
不同的
 +
含义
 +
,比如在“
 +
生命
 +
游戏”中,我们可以用
 +
状态
 +
集
 +
{0
 +
,
 +
1}
 +
表示一个
 +
细胞
 +
的
 +
状态
 +
。也可以用
 +
{
 +
生
 +
,
 +
死
 +
}
 +
表示一个
 +
细胞
 +
(
 +
生命
 +
体)的
 +
状态
 +
,当然也可以用
 +
{
 +
开
 +
灯,关灯
 +
}
 +
表示
 +
运
 +
行在大楼霓虹灯上的“
 +
生命
 +
游戏”这个
 +
软件
 +
。
 +
对于
 +
有
 +
n
 +
个
 +
状态
 +
的
 +
细胞
 +
自动
 +
机,我们不妨把这
 +
n
 +
种
 +
状态
 +
想
 +
象
 +
成
 +
n
 +
种不同的颜色,这
 +
毫
 +
不
 +
影响
 +
我们
 +
对
 +
n
 +
状态
 +
细胞
 +
自动机的
 +
理
 +
解
 +
。仍然用大楼霓虹灯
 +
做
 +
比
 +
喻
 +
,如果每个窗户
 +
后
 +
面的灯是有颜色的,比如有
 +
红
 +
、
 +
蓝
 +
两
 +
种颜
 +
色,那么每个窗户就有
 +
{
 +
红
 +
色灯,
 +
蓝
 +
色灯,关灯
 +
}
 +
三种
 +
状态
 +
。当然我们也可以把关灯
 +
理
 +
解
 +
为黑
 +
颜色灯的
 +
状态
 +
,
 +
所
 +
以这和用
 +
{
 +
红
 +
灯,
 +
蓝
 +
灯,黑灯
 +
}
 +
的表示是一样的。<br />
 +
 +
(
 +
2
 +
)
 +
细胞空
 +
间<br />
 +
 +
简单
 +
地
 +
说
 +
细胞
 +
自动机中
 +
细胞
 +
分
 +
布
 +
的
 +
空
 +
间就是
 +
细胞空
 +
间。在“
 +
生命
 +
游戏”中,
 +
细胞空
 +
间就
 +
是一个二
 +
维
 +
的大方
 +
块
 +
,并且
 +
所
 +
有的
 +
细胞
 +
都是以
 +
水
 +
平
 +
和
 +
竖直
 +
两
 +
个方
 +
向
 +
整齐排列的。关
 +
于
 +
细胞空
 +
间有以下几个
 +
概念
 +
:<br />
 +
 +
a
 +
、
 +
维
 +
度
 +
:
 +
也就是
 +
细胞空
 +
间的
 +
维
 +
度
 +
。
 +
常见
 +
的
 +
细胞空
 +
间都是一
 +
维
 +
或者
 +
二
 +
维
 +
的,一
 +
维
 +
的
 +
细胞空
 +
间就是在
 +
一
 +
条
 +
直线
 +
上的方格,如下图:
 +
<gallery>
 +
File:屏幕快照 2015-12-11 23.16.31.png|
 +
</gallery>
 +
二
 +
维
 +
的
 +
细胞空
 +
间就是一个
 +
平
 +
面,我们
 +
前
 +
面
 +
介绍
 +
的“
 +
生命
 +
游戏”就是一个二
 +
维
 +
的
 +
细胞空
 +
间。
 +
三
 +
维
 +
的
 +
细胞空
 +
间是一个
 +
立
 +
体的
 +
立
 +
方体,下面给出了示意:
 +
<gallery>
 +
File:屏幕快照 2015-12-11 23.17.26.png|
 +
</gallery>
 +
当然我们还可以给出
 +
4
 +
维细胞空
 +
间、
 +
5
 +
维细胞空
 +
间
 +
等等
 +
,
 +
但
 +
那已经
 +
远远超
 +
出了图
 +
形
 +
表
 +
达
 +
的
 +
能力
 +
极限
 +
了。<br />
 +
B
 +
、
 +
细胞空
 +
间的几
 +
何
 +
划
 +
分
 +
:<br />
 +
细胞
 +
的
 +
形状
 +
以
 +
及
 +
细胞
 +
之间的排列方
 +
式
 +
。我
 +
们
 +
常见
 +
的是
 +
横
 +
平
 +
竖直
 +
的
 +
四
 +
方格排列方
 +
式
 +
,当
 +
然
 +
还可以有其他的几
 +
何
 +
划
 +
分
 +
,如下面的几个
 +
例
 +
子:
 +
<gallery>
 +
File:屏幕快照 2015-12-11 23.19.14.png|
 +
</gallery>
 +
这些几
 +
何
 +
划
 +
分分别
 +
是三
 +
角
 +
构
 +
形
 +
,
 +
四
 +
方构
 +
形
 +
和
 +
四
 +
方
 +
网
 +
格还有
 +
六
 +
边形网
 +
格。
 +
一
 +
般
 +
的,
 +
只要
 +
某
 +
种图
 +
形能够形
 +
成
 +
对
 +
一个
 +
平
 +
面
 +
区域
 +
的
 +
覆盖
 +
就可以
 +
认
 +
为是一种
 +
细胞空
 +
间的几
 +
何
 +
划
 +
分
 +
。
 +
==== 边界处理方法 ====
 +
细胞空
 +
间
 +
边
 +
界
 +
处
 +
细胞
 +
的
 +
处理
 +
方法。
 +
无论
 +
是
 +
哪
 +
一种
 +
细胞空
 +
间,
 +
为了
 +
能
 +
在
 +
计算
 +
机上
 +
进
 +
行
 +
模
 +
拟
 +
它都
 +
必须
 +
是一个有
 +
限
 +
的
 +
区域
 +
,因
 +
此
 +
我们
 +
必须
 +
考虑
 +
在
 +
边
 +
界
 +
上的
 +
细胞空
 +
间
 +
处理
 +
方法。
 +
比如在
 +
“
 +
生
 +
命
 +
游戏”
 +
中,
 +
它的
 +
空
 +
间是一个方
 +
块
 +
,
 +
那么在方
 +
块
 +
四
 +
个
 +
边
 +
上的
 +
细胞
 +
应该如
 +
何处理
 +
呢?要
 +
知道
 +
左
 +
边
 +
的方格没有
 +
更左边
 +
的
 +
邻
 +
居了。
 +
一种很自然的想法就是把
 +
最
 +
右边边
 +
界
 +
处
 +
的
 +
细胞
 +
当
 +
作
 +
是这个
 +
细
 +
胞
 +
的
 +
左邻
 +
居,
 +
而
 +
右边边
 +
界
 +
处
 +
的那个
 +
细胞
 +
的
 +
右邻
 +
居是该
 +
细胞
 +
。
 +
也就是
 +
说
 +
细胞空
 +
间的
 +
左右两端被
 +
连接
 +
在了一起,就好像是一个
 +
圆柱
 +
面。同样的方法也可以应用到上下
 +
两
 +
个
 +
边
 +
界
 +
上。
 +
在
 +
细胞
 +
自动机的实
 +
际
 +
应用中,
 +
还可以用反
 +
射
 +
型
 +
、
 +
固
 +
定
 +
值
 +
型
 +
的方法
 +
处理边
 +
界
 +
这里不
 +
再
 +
多
 +
说
 +
了。
 +
=== 邻居 ===
 +
细胞
 +
自动机的
 +
运
 +
行
 +
规律
 +
不
 +
仅仅取
 +
决于某
 +
一个
 +
细胞
 +
自
 +
身
 +
的
 +
状态
 +
,
 +
而且也
 +
取
 +
决于
 +
它
 +
周围
 +
的多
 +
个
 +
细胞
 +
的
 +
状态
 +
,这些
 +
细胞
 +
就是该
 +
细胞
 +
的
 +
邻
 +
居。我们可以
 +
采
 +
用多种方法定
 +
义
 +
一个
 +
细胞
 +
的
 +
邻
 +
居。
 +
在方格
 +
细胞空
 +
间中,
 +
常
 +
用的
 +
邻
 +
居类
 +
型包括
 +
下面几种:
 +
<gallery>
 +
File:屏幕快照 2015-12-11 23.21.38.png|
 +
</gallery>
 +
这其中,
 +
黑色的方格表示当
 +
前
 +
的
 +
细胞
 +
,
 +
灰色的表示它的
 +
邻
 +
居。
 +
上面的三种类
 +
型
 +
都是人们
 +
常
 +
用的类
 +
型
 +
。在
 +
实
 +
际
 +
应用中,
 +
还有很多
 +
邻
 +
居的类
 +
型
 +
。
 +
另外
 +
,
 +
邻
 +
居的类
 +
型
 +
也
 +
跟细胞空
 +
间的几
 +
何
 +
划
 +
分
 +
和
 +
维
 +
度
 +
有关系。
 +
在一
 +
维
 +
的
 +
细胞
 +
自动机中,
 +
我们
 +
常常
 +
用一个
 +
细胞
 +
在一个方
 +
向相
 +
邻
 +
的
 +
细胞
 +
个
 +
数
 +
定为该
 +
细胞
 +
自动机的
 +
邻
 +
居
 +
半径
 +
,
 +
比如
 +
邻
 +
居
 +
半径
 +
为
 +
1
 +
的一
 +
维细
 +
胞
 +
自动机的
 +
邻
 +
居
 +
区域
 +
如下图示