也许我们在网络当中会看到一个神奇的数:891
891=0.01123595505…
稍作注意可以很明显看到,似乎遵循着斐波那契的某种规律?
看起来像是很多个斐波那契数相加之后的结果?这里的 9 可以分解为 8 和 1,似乎全是斐波那契数相加起来的
根据 Fibonacci 数列的性质,可以得到一个等式:
891=n=1∑∞10nFn
其中:
Fn=Fn−1+Fn−2(n≥2),F0=0,F1=1
所以现在我们要来验证这个等式 ,看看它究竟是不是斐波那契数列加起来的结果
我们可以先将 101 记为 x,现在原式为:
F(x)=n=1∑∞Fn⋅xn
即
F(x)=1x1+1x2+2x3+3x4+5x5+…
这是一个形式幂级数,这个形式似乎非常熟悉
我们来尝试使用一些技巧来求出 F(x),因为我们知道 Fn 的通项公式,所以可以构造 Fn−1,Fn−2:
F(x)=1x1+1x2+2x3+3x4+5x5+8x6+13x7+…xF(x)=1x2+1x3+2x4+3x5+5x6+8x7+…x2F(x)=1x3+1x4+2x5+3x6+5x7+…
所以
(1−x−x2)F(x)=x
⟹F(x)=1−x−x2x
更加形式化的论证
设
F(x)=n=0∑∞Fnxn.递推式
Fn=Fn−1+Fn−2对 n≥2 成立。
对递推式两边乘以 xn,并从 n=2 到 ∞ 求和:
n=2∑∞Fnxn=n=2∑∞Fn−1xn+n=2∑∞Fn−2xn.逐项改写。
左边:
n=2∑∞Fnxn=F(x)−F0−F1x=F(x)−x.因为 F0=0,F1=1。
右边第一项:
n=2∑∞Fn−1xn=xn=2∑∞Fn−1xn−1=xm=1∑∞Fmxm=x(F(x)−F0)=xF(x).右边第二项:
n=2∑∞Fn−2xn=x2n=2∑∞Fn−2xn−2=x2F(x).所以
F(x)−x=xF(x)+x2F(x).整理:
F(x)(1−x−x2)=x.因此
F(x)=1−x−x2x.
取 x=101:
f(101)=1−101−(101)2101=8910=0.1123595505…
这里的差距主要是由于我们 Fn 的定义不同,若这里的 F1 定义为 0(我们这里的 F0 定义为 0,主要为了后文方便)则为 891 ,但无论如何,可以发现它确实就是斐波那契数求和的结果
快速理解生成函数
以求集合 {1,2,3,4,5} 元素和为 8 的子集个数为例:
通常我们看到这个问题显然可以直接枚举子集,然后选出和为 8 的个数,或者当做一个 DP/搜索题目去做。
但是这里可以使用
(1+x1)(1+x2)(1+x3)(1+x4)(1+x5)其中对于 x8 的系数则是答案
但是凭什么呢?
我想很多人都会赞同这种做法的正确性,仔细一想似乎也合理,因为每个都和其他多项式充分进行了计算,这不就是计算的子集
但是为什么我们会拉出这个多项式呢?且为什么偏偏是 (1+xk) 这样的形式?
说起加法/乘法原理都不陌生,我们先计算一下子集个数是怎么来的:
对于每个元素都有两种选择:选/不选
所以则是 (1+1)(1+1)(1+1)(1+1)(1+1)=32 个子集
看起来似乎可以和上面的多项式一一对应;这里的加法代表了「或」、乘法代表了「和」
所以上面的即为 (不选 1或选 1)和(不选 2或选 2)和(不选 3或选 3)和(不选 4或选 4)和(不选 5或选 5)
这样似乎就好理解多了,我们可以将这个式子展开,例如第一项为 全部不选 下一项为 除了 1 全部不选…一共 32 项和子集对应,然后对于每一个项都可以被计算为某个值:将选择了的项全部相加。
但是这里似乎又有一个问题了,为什么上面是 (1+1) 体现的一样,可不可以是 (1+1)(1+2)(1+3)(1+4)(1+5) 这样呢?
当然计算出的结果显然是不对的,but why not?
在计算的时候 或/和 运算分别被替换为了加法和乘法,要计算子集的元素和,显然应该将被选择的元素加起来才对(而对于这个错误的式子则是相乘的:2×3,3×5…),在这里应该 将乘法转变到加法,而指数运算就有这种性质:x3×x5=x8,这里的底数是怎样并不重要
于是,母函数/生成函数就出现了:
P(x)=(1+x1)(1+x2)(1+x3)(1+x4)(1+x5)对于上面的 (不选 1或选 1)和(不选 2或选 2)和(不选 3或选 3)和(不选 4或选 4)和(不选 5或选 5) 式子,这里每次不选对结果的影响为 0(加 0),选了则影响对应的元素大小(加 k),对于多个加法可以被合成为 1 个
所以可以被化简为这样
(加 0 或加 1)(加 0 或加 2)(加 0 或加 3)(加 0 或加 4)(加 0 或加 5)
= 加 0 或加 1 或加 2 或 2 加 3 或 2 加 4 或 3 加 5 或 3 加 6 或 3 加 7 或 3 加 8 或 3 加 9 或 3 加 10 或 2 加 11 或 2 加 12 或加 13 或加 14 或加 15
plaintext而这和 P(x) 原式展开之后式子之间是同构的(将这里的 加 k 变为 xk ),原式展开后为:
1+x+x2+2x3+2x4+3x5+3x6+3x7+3x8+3x9+3x10+2x11+2x12+x13+x14+x15
这里我们的问题完美得到了解决
那如果换一个问题呢?
求集合 {1,2,3,4,5} 有三个元素的子集个数
那么我们需要新的生成函数了
让我们来算算影响:加/不加入子集,对答案的影响为 1/0
所以是:
(加 0 或加 1)(加 0 或加 1)(加 0 或加 1)(加 0 或加 1)(加 0 或加 1)
plaintext所以变为:
(1+x)5展开之后,x3 则为答案
现在新的问题又来了,凭什么这个幂级数就等于这个分数呢,感觉完全不对吧?这个等式来源于哪里?
对于等比数列的求和:
an=qa0n−1(n>1)a0+a0q+a0q2+⋯+a0qn−1=1−qa0(1−qn)
所以
1+x+x2+x3+⋯+xn=1−x1−xn
xn−1 和 x−1 的拆解很多时候也能算作是一个技巧
n∈(−1,1),x→∞,1−x1−xn→1−x1
在定义域范围内,将对应的式子对应到图像上,确实和幂级数是对应的,这个式子的泰勒展开,也就是对应的幂级数
但是在定义域之外的情况,似乎就不太能够真正对应,对于这种情况,在数学的很多领域当中都会出现,比如虚数的出现也是在我们捏着鼻子去硬算,假设他是存在的,然后也发展出了数学分支
有时我们也能够看到这一个等式(黎曼函数的解析延拓)
ζ(−1)=n=1∑∞n−11=n=1∑∞n=1+2+3+4+⋯=−121
它超出了我们的常理,似乎是我们完全不可接受的,实际上按照常规的代数手段而言也确实是这样,应当有定义域的限制才对
而这里我们可以把它看作是形式幂级数等式,也就是说它并不是某个函数在某个 x 上取值是相等的,而是两个序列的每一项系数相等。形式幂级数把一串数用一个形式变量 x 编码起来
通项公式推导#
这里我们会给出多种通项公式的推导
构造等比数列#
令
φ=21+5,ψ=21−5
考虑构造
Gn=Fn+1−φFn
利用递推 Fn+1=Fn+Fn−1 以及 φψ=−1,φ+ψ=1:
Gn=Fn+Fn−1−φFn=(1−φ)Fn+Fn−1=ψFn+Fn−1=ψ(Fn−φFn−1)=ψGn−1
也就是说 Gn 是等比数列:
Gn=ψnG0,G0=F1−φF0=1
所以
Fn+1−φFn=ψn
于是
Fn+1=φFn+ψn
从 F0=0 开始迭代:
Fn=φFn−1+ψn−1=φ(φFn−2+ψn−2)+ψn−1=φ2Fn−2+φψn−2+ψn−1=⋯=φnF0+k=0∑n−1φn−1−kψk=k=0∑n−1φn−1−kψk
设
S=k=0∑n−1φn−1−kψk
则
φS−ψS=φn−ψn.
因为
φS=k=0∑n−1φn−kψk,ψS=k=0∑n−1φn−1−kψk+1.两式相减,中间项全部抵消,得到
(φ−ψ)S=φn−ψn.
Fn=φ−ψφn−ψn
所以
Fn=51[(21+5)n−(21−5)n]
生成函数#
设
F(x)=n=0∑∞Fnxn
利用
Fn=Fn−1+Fn−2
可以推出(引入已经给出)
F(x)=1−x−x2x
设
1−x−x2x=1−αxA+1−βxB.
解得:
A=51,B=−51
⟹1−x−x2x=51(1−αx1−1−βx1)
由前面学到的知识,可以知道,这就是 1−x1 的形式,所以
1−αx1=n=0∑∞(αx)n,1−βx1=n=0∑∞(βx)n
所以
F(x)=51n=0∑∞(αn−βn)xn=n=0∑∞Fnxn
⟹Fn=51(αn−βn)
这里的 α,β 在计算 A,B 的时候,那个等式就已经可以得出,不再赘述
矩阵幂与对角化#
递推的矩阵形式
由
Fn+1=Fn+Fn−1
可得
(Fn+1Fn)=(1110)(FnFn−1).
记
A=(1110).
于是
(Fn+1Fn)=An(F1F0)=An(10).
求 A 的特征值和特征向量
特征多项式为
det(A−λI)=1−λ11−λ=λ2−λ−1.
所以特征值为
λ=φ,ψ.
其中
φ=21+5,ψ=21−5.
对特征值 φ,求特征向量:
A(φ1)=(1110)(φ1)=(φ+1φ)=(φ2φ)=φ(φ1).
这里用了
φ2=φ+1.
所以特征向量可取
vφ=(φ1).
同理,
vψ=(ψ1).
令
P=(φ1ψ1).
则
A=P(φ00ψ)P−1.
计算 P−1
因为
detP=φ−ψ=5,
所以
P−1=51(1−1−ψφ).
于是
An=P(φn00ψn)P−1.
求 Fn
因为
(Fn+1Fn)=An(10),
先算
P−1(10)=51(1−1−ψφ)(10)=51(1−1).
所以
(Fn+1Fn)=P(φn00ψn)P−1(10)=51(φ1ψ1)(φn00ψn)(1−1)=51(φ1ψ1)(φn−ψn)=51(φn+1−ψn+1φn−ψn).
比较第二个分量,得到
Fn=5φn−ψn.
组合数学#
这里考虑走楼梯的场景:
设走完 m 级阶梯的方法数为 Tm
易得:T0=1,T1=1,且 Tm=Tm−1+Tm−2
可以发现这里的 Tn 相对于我们定义的 Fn 偏移了一位
假设走完 m 级时,走了 k 步 2 级阶梯,则剩下的 m−2k 级是使用的 1 级走
一共走了 m−2k+k=m−k 步
所以是在 m−k 步中选出了 k 步走 2 级,方法数为
(km−k)
当然走一级和走二级是等价/对称的,也可以是 (m−2km−k),结果是一样的
易得:
Tm=k=0∑⌊m/2⌋(km−k).
⟹Fn=Tn−1=k=0∑⌊(n−1)/2⌋(kn−1−k).
这里可以选择求 Tm 或者 Fn 的生成函数,不过 Tm 看起来更简洁
求Tm 的生成函数
设
G(x)=m=0∑∞Tmxm.代入
Tm=k=0∑⌊m/2⌋(km−k).约定当 k>m−k 时 (km−k)=0,则
G(x)=m=0∑∞k=0∑∞(km−k)xm.交换求和顺序。令
j=m−k,则
m=j+k.于是
G(x)=k=0∑∞j=k∑∞(kj)xj+k.整理:
G(x)=k=0∑∞xkj=k∑∞(kj)xj.利用恒等式
j=k∑∞(kj)xj=(1−x)k+1xk,得到
G(x)=k=0∑∞xk⋅(1−x)k+1xk=k=0∑∞(1−x)k+1x2k.提出 1−x1:
G(x)=1−x1k=0∑∞(1−xx2)k.这是几何级数,公比为 1−xx2,所以
G(x)=1−x1⋅1−1−xx21=1−x1⋅1−x−x21−x=1−x−x21.因此
G(x)=1−x−x21.
求完生成函数就前面一样了,不再赘述
一些性质#
普通有限和#
由递推关系,
Fk=Fk+2−Fk+1.
相加以后,中间项全部抵消:
k=1∑NFk=(F3−F2)+(F4−F3)+⋯+(FN+2−FN+1)=FN+2−F2.
所以
k=1∑NFk=FN+2−1.
平方和#
注意
FkFk+1−Fk−1Fk=Fk(Fk+1−Fk−1)=Fk2.
因而
k=1∑NFk2=k=1∑N(FkFk+1−Fk−1Fk)=FNFN+1−F0F1.
得到
k=1∑NFk2=FNFN+1.
奇/偶项和#
对奇数项,递推关系给出
F2k−1=F2k−F2k−2.
因此
k=1∑NF2k−1=F2N−F0=F2N.
对偶数项,
F2k=F2k+1−F2k−1,
因此
k=1∑NF2k=F2N+1−F1=F2N+1−1.
两个公式相加,就得到
k=1∑2NFk=F2N+F2N+1−1=F2N+2−1,
与普通有限和公式一致。
倒数和#
求它的倒数无穷和:
S=n=1∑∞Fn1=1+1+21+31+51+81+⋯.
令
q=φ1=25−1,0<q<1,
就有
Fn1=φn−(−φ−1)n5=1−(−q2)n5qn.
这也直接说明了倒数和为什么收敛。因为
1−(−q2)n≥1−q2n≥1−q2>0,
所以
0<Fn1≤1−q25qn.
右侧是收敛等比级数的通项,故由比较判别法,S 收敛。
接着求它的精确表示。利用等比级数展开
1−x1=k=0∑∞xk,∣x∣<1,
得到
Fn1=5qnk=0∑∞(−q2)nk=5k=0∑∞(−1)nkq(2k+1)n.
因此
S=5n=1∑∞k=0∑∞(−1)nkq(2k+1)n.
这里可以交换求和顺序,因为双重级数绝对收敛:
n=1∑∞k=0∑∞(−1)nkq(2k+1)n=n=1∑∞1−q2nqn≤1−q21n=1∑∞qn<∞.
交换顺序后,对 n 的求和就是等比级数:
S=5k=0∑∞n=1∑∞[(−1)kq2k+1]n=5k=0∑∞1−(−1)kq2k+1(−1)kq2k+1.
代回 q=φ−1,得到精确表达式
S=5k=0∑∞φ2k+1−(−1)k(−1)k,φ=21+5.
展开前几项,就是
S=5(φ−11−φ3+11+φ5−11−φ7+11+⋯).
这个表达式的项按几何速度减小,可以用于数值计算,结果为
n=1∑∞Fn1=3.3598856662431775…
它没有已知的简单初等闭式,但可以从通项公式推导出精确的级数表示。
倒数平方和#
S2=n=1∑∞Fn21=1+1+41+91+251+641+⋯.
令
φ=21+5,q=φ1=25−1.
Binet 公式为
Fn=5φn−(−φ−1)n=5φn(1−(−q2)n).
所以
Fn21=5(1−(−q2)n)2q2n.
利用
(1−x)21=k=0∑∞(k+1)xk,∣x∣<1,
可得
Fn21=5q2nk=0∑∞(k+1)(−q2)nk=5k=0∑∞(k+1)(−1)nkq(2k+2)n.
交换求和顺序后,对 n 求等比级数:
S2=5k=0∑∞(k+1)n=1∑∞[(−1)kq2k+2]n=5k=0∑∞(k+1)1−(−1)kq2k+2(−1)kq2k+2.
由于
1−(−1)kqmqm=φm−(−1)k1,
最终得到
n=1∑∞Fn21=5k=0∑∞φ2k+2−(−1)k(k+1)(−1)k.
数值为
n=1∑∞Fn21=2.4263207511672411877415694….
它通常就以这种快速收敛的 φ-级数或数值常数表示,目前没有一个像有限平方和那样广为接受的初等闭式。计算前 N 项时,尾项还可以估计为
0<S2−n=1∑NFn21≤34(FN+121+FN+221),
因为 Fn+2≥2Fn。
更一般地,对任意正整数 p,同样的方法给出统一公式
n=1∑∞Fnp1=5p/2k=0∑∞(kp+k−1)φp+2k−(−1)k(−1)k.
其中 p=1 就得到前面提到的倒数和
n=1∑∞Fn1=3.359885666243177553…,
而 p=2 就是上面的倒数平方和。由于 Fn∼φn/5,所以所有 p>0 的倒数幂级数都收敛。
Cassini 恒等式#
对矩阵公式取行列式:
det(Qn)=(detQ)n=(−1)n.
另一方面,
det(Qn)=Fn+1Fn−1−Fn2.
所以
Fn+1Fn−1−Fn2=(−1)n.
例如 8×3−52=−1,而 13×5−82=1。
倒数乘积和#
先看此前提到的
n=1∑∞FnFn+21.
因为 Fn+2−Fn=Fn+1,有
FnFn+11−Fn+1Fn+21=FnFn+1Fn+2Fn+2−Fn=FnFn+21.
所以前 N 项之和为
n=1∑NFnFn+21=1−FN+1FN+21.
最后一项趋于 0,得到
n=1∑∞FnFn+21=1.
另一个有趣的结果直接来自 Cassini 恒等式。它给出
rn+1−rn=FnFn+1Fn+2Fn−Fn+12=FnFn+1(−1)n+1.
rn=FnFn+1
相加得到
n=1∑NFnFn+1(−1)n+1=rN+1−r1.
由于 r1=1、rN+1→φ,所以
n=1∑∞FnFn+1(−1)n+1=φ−1=φ1.
展开就是
1−21+61−151+401−⋯=25−1.
下标为 2 的幂的倒数和#
考虑
T=k=0∑∞F2k1=1+1+31+211+9871+⋯.
它能化成一个简单的代数数。先由加法公式得到
F2n=Fn(Fn+1+Fn−1),F2n+1=Fn+12+Fn2.
加法公式证明
要证:
Fm+n=FmFn+1+Fm−1Fn.(1)
固定 m≥1,对 n 归纳。
当 n=0:
FmF1+Fm−1F0=Fm⋅1+Fm−1⋅0=Fm=Fm+0.当 n=1:
FmF2+Fm−1F1=Fm⋅1+Fm−1⋅1=Fm+Fm−1=Fm+1.所以 n=0,1 时成立。
假设对 n 和 n−1 成立,即
Fm+n=FmFn+1+Fm−1Fn,Fm+n−1=FmFn+Fm−1Fn−1.那么
Fm+n+1=Fm+n+Fm+n−1=(FmFn+1+Fm−1Fn)+(FmFn+Fm−1Fn−1)=Fm(Fn+1+Fn)+Fm−1(Fn+Fn−1)=FmFn+2+Fm−1Fn+1.这正是公式 (1) 在 n+1 时的形式。因此归纳成立。
所以
Fm+n=FmFn+1+Fm−1Fn.
因此
rn−r2n=FnFn+1−Fn(Fn+1+Fn−1)Fn+12+Fn2=F2nFn+1Fn−1−Fn2=F2n(−1)n.
最后一步又使用了 Cassini 恒等式。
当 k≥2 时,取 n=2k−1,此时 n 为偶数,得到
F2k1=r2k−1−r2k.
所以,对 K≥1,
k=0∑KF2k1=F11+F21+k=2∑K(r2k−1−r2k)=2+r2−r2K=4−r2K.
取极限,便有
k=0∑∞F2k1=4−φ=27−5=2.381966011250105….
黄金分割与连分数#
令
rn=FnFn+1.
由通项公式可得一个精确的误差式:
Fn+1−φFn=5φn+1−ψn+1−φ(φn−ψn)=5ψn(φ−ψ)=ψn.
所以
rn−φ=Fnψn=φnFn(−1)n.
因为右边趋于 0,便有
FnFn+1⟶φ.
同时可以看出:奇数下标的 rn 小于 φ,偶数下标的 rn 大于 φ,并且
∣rn−φ∣∼5φ−2n.
连分数简介
一个连分数通常写成
x=a0+a1+a2+a3+⋯111简记为
x=[a0;a1,a2,a3,…]其中 a0 可以是整数,后面通常要求 a1,a2,… 是正整数。这种叫简单连分数。
例如:
1943=2+195=2+3+1+4111=[2;3,1,4]有理数的连分数是有限的
任何有理数都能用欧几里得算法展开成有限连分数。
比如 1943:
43=2⋅19+519=3⋅5+45=1⋅4+14=4⋅1+0取商:
[2;3,1,4]反过来,有限连分数一定是有理数。
无理数给出无限连分数
一些经典例子:
2=[1;2,2,2,…]φ=21+5=[1;1,1,1,…]π=[3;7,15,1,292,1,…]黄金比例 φ 的连分数全是 1,所以它在一定意义下是“最难被有理数逼近”的数之一。
收敛子:连分数的近似值
把连分数截断,得到
qnpn=[a0;a1,…,an]叫第 n 个收敛子。它们会交替地从两边逼近原数。
例如 π=[3;7,15,1,292,…] 的前几个收敛子是:
3,722,106333,113355,…其中 22/7 和 355/113 都是很有名的 π 近似。
收敛子可以用递推公式快速计算:
pn=anpn−1+pn−2qn=anqn−1+qn−2初值常取
p−2=0,p−1=1,q−2=1,q−1=0
递推关系给出
rn+1=FnFn+1=1+rn1,r1=1.
因而
r1=1,r2=2,r3=23,r4=35,r5=58,…
每次都在已有表达式外面加一层 1+1/(⋅),所以
rn=[n 个 11;1,…,1].
取极限得到
φ=[1;1,1,1,…].
从方程上也能验证:它的值 x>0 满足 x=1+1/x,即 x2−x−1=0,故 x=φ。
所以可以得到 斐波那契数比值、 φ 、连分数的关系
n→∞,FnFn+1=φ=21+5=1+1+1+...11=[1;1,1,…]
gcd#
先证明相邻项互质
相邻项互质
对任意整数 a,b,有
gcd(a+b,a)=gcd(a,b).
若 d∣a 且 d∣b 易得 d∣xa+yb 即 a,b 的线性组合,则 d∣a+b,d∣b→d∣1⋅(a+b)+(−1)⋅b→d∣b
所以:
gcd(Fn,Fn+1)=gcd(Fn,Fn+Fn−1)=gcd(Fn,Fn−1)=1.
由递推关系,
gcd(Fn,Fn−1)=gcd(Fn−1,Fn−2)=⋯=gcd(F1,F0)=1.
对于上面有说到的加法公式:
Fm+n=FmFn+1+Fm−1Fn,代入 m′=n,n′=m−n
Fm=FnFm−n+1+Fn−1Fm−n.
根据上方的引理,因而
gcd(Fm,Fn)=gcd(Fn−1Fm−n,Fn)=gcd(Fm−n,Fn).
于是,每把下标对 (m,n) 换成 (m−n,n),对应斐波那契数的最大公因数都保持不变。不断执行「欧几里得算法」,最终下标变成 (d,0),其中 d=gcd(m,n)。因此
gcd(Fm,Fn)=Fgcd(m,n).
特别地,如果 m∣n,那么
Fm∣Fn.
所以下标之间的整除关系,会传递给对应的斐波那契数。
Zeckendorf 表示#
使用 F2,F3,F4,…=1,2,3,5,…,每项最多使用一次,并要求使用的下标互不相邻。结论是:
每个正整数都有且只有一种这样的表示。
例如
100=89+8+3=F11+F6+F4.
证明存在性
对正整数 M,选不超过它的最大斐波那契数 Fk,即
Fk≤M<Fk+1.
减去 Fk 后,余数满足
0≤M−Fk<Fk+1−Fk=Fk−1.
所以下一个选中的数至多是 Fk−2,自然不会与 Fk 相邻。对余数重复这一过程,每次余数都减小,最终到达 0,得到所需表示。
证明唯一性
令 Ak 表示从 F2,…,Fk 中选取互不相邻项,所能得到的最大和。根据是否选 Fk,
Ak=max{Ak−1, Fk+Ak−2}.
从 A1=0、A2=1 出发,归纳得到
Ak=Fk+1−1.
假设同一个整数有两个不同的合法表示,消去共同项,设最大的不同下标为 k。其中一个表示包含 Fk,其剩余总和至少为 Fk;另一个表示只能使用下标不超过 k−1 的项,其总和至多为
Ak−1=Fk−1.
两边无法相等,矛盾。因此表示唯一。
较小的、不相邻的斐波那契数,即使全部按最大可能方式相加,也达不到下一个斐波那契数。这正是唯一性证明的关键。
一个简单的局部规则,经过不断重复之后,可以形成远比规则本身丰富的整体结构。同一个结构可以在不同问题中被重新发现