更改

第114行: 第114行:     
对于在非常长的时间深度探索大型模式,像 Hashlife 这样的复杂算法可能是有用的。 还有一种方法,也适用于其他细胞自动机,用任意的异步更新来实现生命游戏,同时仍然完全模仿同步游戏的行为。<ref>{{cite conference|title=Self-Reproduction in Asynchronous Cellular Automata |first=Chrystopher L. |last=Nehaniv |date=15–18 July 2002 |conference=2002 NASA/DoD Conference on Evolvable Hardware |conference-url=http://ieeexplore.ieee.org/xpl/mostRecentIssue.jsp?punumber=8000 |publisher=IEEE Computer Society Press |location=Alexandria, Virginia, USA |pages=201–209 |isbn=0-7695-1718-8 |doi=10.1109/EH.2002.1029886 }}</ref> 在 Rosetta Code 中可以找到用各种编程语言(包括 c、 c + + 、 Java 和 Python)实现基本生命游戏场景的源代码示例。<ref>{{cite web|url=http://rosettacode.org/wiki/Conway%27s_Game_of_Life|title=Conway's Game of Life}}</ref>
 
对于在非常长的时间深度探索大型模式,像 Hashlife 这样的复杂算法可能是有用的。 还有一种方法,也适用于其他细胞自动机,用任意的异步更新来实现生命游戏,同时仍然完全模仿同步游戏的行为。<ref>{{cite conference|title=Self-Reproduction in Asynchronous Cellular Automata |first=Chrystopher L. |last=Nehaniv |date=15–18 July 2002 |conference=2002 NASA/DoD Conference on Evolvable Hardware |conference-url=http://ieeexplore.ieee.org/xpl/mostRecentIssue.jsp?punumber=8000 |publisher=IEEE Computer Society Press |location=Alexandria, Virginia, USA |pages=201–209 |isbn=0-7695-1718-8 |doi=10.1109/EH.2002.1029886 }}</ref> 在 Rosetta Code 中可以找到用各种编程语言(包括 c、 c + + 、 Java 和 Python)实现基本生命游戏场景的源代码示例。<ref>{{cite web|url=http://rosettacode.org/wiki/Conway%27s_Game_of_Life|title=Conway's Game of Life}}</ref>
 +
 +
 +
==衍生==
 +
自从生命诞生以来,新的类似的细胞自动机已经被开发出来。 标准的生命游戏象征为 b3 / s23。 如果一个细胞恰好有三个邻居,它就会出生; 如果有两个或三个活着的邻居,它就会存活下来,否则就会死亡。 第一个数字,或者数字列表,是一个死亡细胞出生所需要的数字。 第二组是活细胞存活到下一代的必要条件。 因此,b6 / s16意味着”如果有六个邻居,则一个细胞出生; 如果有一个或六个邻居,则细胞继续存活”。 二维网格上的细胞自动机,即可以这样描述的细胞自动机称为类生命细胞自动机。 另一个常见的类生命自动机,Highlife,是由规则 b36 / s23描述的,因为除了原始游戏的 b3 / s23规则外,还有六个邻居,导致了一个新生命的诞生。 Highlife 以其频繁出现的复制因子而闻名。<ref>[http://www.tip.net.au/~dbell/articles/HighLife.zip HighLife – An Interesting Variant of Life] by David Bell (.zip file)</ref><ref>{{cite web|url=http://www.conwaylife.com/ref/lexicon/lex_r.htm#replicator|title=Replicator|publisher=The Life Lexicon|author=Stephen A. Silver|accessdate=March 4, 2019}}</ref>
 +
 +
[[Oscillator.gif|right|400px|thumb|来自2-D六角形生命游戏的48步振荡器以及2步振荡器和4步振荡器的样本(规则H:B2 / S34)]]
 +
 +
推广的类生命细胞自动机也是存在的。这2^18条不同的规则<ref>{{cite web|url=http://conwaylife.com/wiki/Life-like#Life-like_cellular_automata |title=Life-like cellular automata - LifeWiki |publisher=Conwaylife.com |accessdate=March 4, 2019}}</ref>中的绝大多数产生的宇宙要么太混乱,要么太荒凉,以至于不能引起人们的兴趣,但是大部分宇宙的确显示出有趣的行为。 进一步的推广产生了各向同性规则空间,有2^102个可能的 CA 规则<ref>{{cite web|url=http://conwaylife.com/wiki/Isotropic |title=Isotropic - LifeWiki |publisher=Conwaylife.com |accessdate=March 4, 2019}}</ref> (Conway’s Life 也是其中之一)。 这些规则使用与类生命游戏规则相同的方形网格和相同的八格邻域,并且在旋转和反射下同样不变。 然而,在各向同性规则中,在确定一个细胞的未来状态时,可以考虑相邻细胞之间的相对位置,而不仅仅是相邻细胞的总数。
 +
 +
康威的规则也可以被广义化,以至于有三个或更多的状态,而不是只有两个状态,活的或死的。 然后,状态转换由一个配置系统或一个为每个状态指定单独转换规则的表来确定; 例如,Mirek’ s Cellebration 的多色规则表和 Weighted Life 规则系列每个都包含相当于 Conway’ s Life 的样本规则。
 +
与分形和分形系统有关的模式也可以在某些类似生命的变化中观察到。 例如,自动机 b 1 / s12在应用于单个活细胞时,会产生4个非常接近谢尔宾斯基三角形的值。 在 Conway 的《生命游戏》中也可以观察到这种谢尔宾斯基三角形,通过检测一长串单细胞厚度的活细胞的长期生长,以及在 Highlife、[https://en.wikipedia.org/wiki/Seeds_(cellular_automaton) Seeds (b2/s)]和 Wolfram的[https://en.wikipedia.org/wiki/Rule_90 Rule 90]中观察到。<ref>{{cite web|url=http://www.conwaylife.com/wiki/index.php?title=One_cell_thick_pattern|title=One cell thick pattern|publisher=LifeWiki|accessdate=July 12, 2009}}</ref>
 +
移民是也一种变换形式,非常类似于康威的生命游戏,除了有两个状态,通常表示为不同的颜色。 每当一个新细胞出生时,它都处于开启状态。 这个特性可以用来检查游戏中[https://en.wikipedia.org/wiki/Spaceship_(CA) 可移动的震荡状态]和其他物体之间的相互作用。<ref>
 +
{{cite web|url=http://www.conwaylife.com/ref/lexicon/lex_i.htm#immigration |title=Immigration |publisher=The Life Lexicon|author=Stephen A. Silver |accessdate=March 4, 2019}}</ref>另一种类似的变体叫做 QuadLife,涉及四种不同的状态。 当一个新的细胞从相邻的三个不同的细胞中诞生时,它会呈现第四个值,否则,就像 Immigration 一样,它会呈现大多数值。 <ref>{{cite web|url=http://www.conwaylife.com/ref/lexicon/lex_q.htm#quadlife |title=QuadLife |publisher=The Life Lexicon|author=Stephen A. Silver |accessdate=March 4, 2019}}</ref>除了细胞之间的差异外,这两种变异的行为都与生命相同。
    
==代码实现==
 
==代码实现==
7,129

个编辑