更改

跳到导航 跳到搜索
第100行: 第100行:       −
对这个基本方案进行各种小的改进是可能的,并且有许多方法可以节省不必要的计算。 如果一个单元格在上一个时间步骤中没有发生更改,而且其邻居也没有发生更改,则保证该单元格在当前时间步骤中也不发生更改。 因此,跟踪哪些区域处于活动状态的程序可以通过不更新非活动区域来节省时间。
+
对这个基本方案进行各种小的改进是可能的,并且有许多方法可以节省不必要的计算。 如果一个单元格在上一个时间步骤中没有发生更改,而且其邻居也没有发生更改,则保证该单元格在当前时间步骤中也不发生更改。 因此,跟踪哪些区域处于活动状态的程序可以通过不更新非活动区域来节省时间。<ref>{{cite web|url=http://www.ibiblio.org/lifepatterns/lifeapplet.html|title=About my Conway's Game of Life Applet|author=Alan Hensel|accessdate=July 12, 2009}}</ref>
      第113行: 第113行:  
或者,程序员可以放弃用二维数组表示 Life 字段的概念,而使用不同的数据结构,例如用坐标对表示活细胞的向量。 这种方法允许模式在场中不受阻碍地移动,只要人口不超过活动坐标阵列的大小。 缺点是计算生存的邻居变成了散列表查找或搜索操作,降低了模拟速度。 使用更复杂的数据结构,这个问题也可以基本上得到解决。
 
或者,程序员可以放弃用二维数组表示 Life 字段的概念,而使用不同的数据结构,例如用坐标对表示活细胞的向量。 这种方法允许模式在场中不受阻碍地移动,只要人口不超过活动坐标阵列的大小。 缺点是计算生存的邻居变成了散列表查找或搜索操作,降低了模拟速度。 使用更复杂的数据结构,这个问题也可以基本上得到解决。
   −
对于在非常长的时间深度探索大型模式,像 Hashlife 这样的复杂算法可能是有用的。 还有一种方法,也适用于其他细胞自动机,用任意的异步更新来实现生命游戏,同时仍然完全模仿同步游戏的行为。 <ref> Nehaniv, Chrystopher L. (15–18 July 2002). Self-Reproduction in Asynchronous CellularAutomata [https://web.archive.org/web/20150403013723/http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=1029886]. 2002 NASA/DoD Conference on Evolvable Hardware [http://ie
+
对于在非常长的时间深度探索大型模式,像 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>
eexplore.ieee.org/xpl/mostRecentIssue.jsp?punumber=8000]. Alexandria, Virginia, USA: IEEEComputer Society Press. pp. 201–209. doi:10.1109/EH.2002.1029886 [https://doi.org/10.1109%2FEH.2002.1029886]. ISBN 0-7695-1718-8. Archived from the original [http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=1029886) on April 3, 2015. Retrieved 17 March 2015.</ref>在 Rosetta Code 中可以找到用各种编程语言(包括 c、 c + + 、 Java 和 Python)实现基本生命游戏场景的源代码示例。<ref> "Conway's Game of Life" [http://rosettacode.org/wiki/Conway%27s_Game_of_Life].</ref>
      
==代码实现==
 
==代码实现==
7,129

个编辑

导航菜单