de

生命游戏是一种简单的聚合模型,展示了事物是如何聚合的,是自动机(CA)模型的一种。由剑桥大学约翰康威发明,其规则为:

1. 每个细胞拥有八个邻居,细胞状态只有存活(黑)和死亡(白)两种;

2.处于死亡状态的细胞可以在有三个存活邻居的情况下复活;

3.存活状态的细胞在相邻有2个一下或三个以上存活细胞的情况下会死去,2-3个相邻细胞存活时会继续存活;

从而产生了信号灯、闪光灯、滑翔机、警示灯等经典的变换。

遵循简单规则的简单图像聚合一起可以形成复杂图像,甚至如活物一般能进行空间平移(自组织模型),像是神经元通过某种方式连接,使得人脑神经产生复杂的模式(意识、认知(浮现功能))。如果赋予细胞特殊意义和数值那么还可以用其进行计算(浮现功能)。

下面介绍一下简单的一维CA模型,即元细胞自动机:

细胞自动机是冯诺依曼提出的所想到的计算的最简单形式(一维世界)。规则如上图:

其有两种状态:关闭和开启。其存活取决于其相邻的两个细胞状态。

根据规则,可以得出以上八种可能性。

规则可自拟的情况下,每一个状态都对应两种可能,故而共有2^8即256种不同规则可供讨论。使用2进制来编号,从而可以产生一个0-255间为不同规则(不重复)编号的系统。

如果遍历所有规则,可以发现四种行为:1。不动点 2.交替态 3.随机态 4.复杂态   足以产生出任何结果。

复杂来自于简单的二值相互作用。(IT FROM BIT最终归因于是否二值问题,世界最底层可以仅由开关来构成),但是为了产生复杂性,必定需要源于规则的相互依存性。

生命游戏&一维细胞自动机 笔记的更多相关文章

  1. React项目(二):生命游戏

    引子 这是16年最后的一个练手项目,一贯的感觉就是,做项目容易,写说明文档难.更何况是一个唤起抑郁感觉的项目,码下的每个字,心就如加了一个千斤的砝码. 2016年,有些事我都已忘记,但我现在还记得.2 ...

  2. [LeetCode] Game of Life 生命游戏

    According to the Wikipedia's article: "The Game of Life, also known simply as Life, is a cellul ...

  3. javascript小游戏--生命游戏

    昨天参加Code Retreat的活动,"Code Retreat是一个一天的集中练习的活动,专注于软件开发和设计的基础". 要了解更多信息可前往 CodeRetreat官网 通过 ...

  4. [Swift]LeetCode289. 生命游戏 | Game of Life

    According to the Wikipedia's article: "The Game of Life, also known simply as Life, is a cellul ...

  5. Python实现生命游戏

    1. 生命游戏是什么 生命游戏是英国数学家约翰·何顿·康威在1970年发明的细胞自动机.它包括一个二维矩形世界,这个世界中的每个方格居住着一个活着的或死了的细胞.一个细胞在下一个时刻生死取决于相邻八个 ...

  6. 【LeetCode】Game of Life(生命游戏)

    这道题是LeetCode里的第289道题. 题目描述: 根据百度百科,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在1970年发明的细胞自动机. 给定一个包含 m × n 个格子的面板,每一个格 ...

  7. Leetcode 289.生命游戏

    生命游戏 根据百度百科,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在1970年发明的细胞自动机. 给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞.每个细胞具有一个初始状 ...

  8. [Leetcode] 第289题 生命游戏

    一.题目描述 根据百度百科,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在1970年发明的细胞自动机. 给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞.每个细胞具有一个初 ...

  9. [LeetCode] 289. Game of Life 生命游戏

    According to the Wikipedia's article: "The Game of Life, also known simply as Life, is a cellul ...

随机推荐

  1. Beta冲刺博客集合贴

    Beta阶段第一次冲刺 Beta阶段第二次冲刺 Beta阶段第三次冲刺 Beta阶段第四次冲刺 Beta阶段第五次冲刺 Beta阶段总结博客

  2. Activiti工作流搭建---初始化数据库

    Activiti介绍 Activiti5是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理.工作流.服务协作等领域的一个开源的.灵活的.易扩展的可执 ...

  3. 玩转FusionCharts:Y轴数字形式(如去掉K)

    玩转FusionCharts:Y轴数字形式(如去掉K) 如果运行FusionCharts带的例子,你会发现FusionCharts表中的数字(通常是Y轴)会带上’k’,也就是如20000,会变成20k ...

  4. C#泛型约束where T : class 解释

    这是参数类型约束,指定T必须是Class类型. .NET支持的类型参数约束有以下五种:where T : struct                               | T必须是一个结构 ...

  5. dd测试

    time dd if=/dev/zero of=/root/test.db2 bs=200K count=10000 oflag=dsync

  6. Linux企业运维人员最常用150个命令汇总 [转]

    近来发现新手学习Linux记不住命令,不会分类.不会筛选重点,胡子眉毛一把抓当然记不住了. 特别整理Linux运维最常用150个命令和大家分享,大家学习命令不用在盲目了,根据分类,然后逐步学习! 命令 ...

  7. gensurf

    我来做个福利吧,首先将模糊文件.fis,加载到workspace中,这个大家都会,利用上面说的那个例子a = readfis('tipper');gensurf(a)这样默认的就是前两个输入的曲线,要 ...

  8. 深入浅出的webpack4构建工具--webpack4+vue+vuex+mock模拟后台数据(十九)

    mock的官网文档 mock官网 关于mockjs的优点,官网这样描述它:1)可以前后端分离.2)增加单元测试的真实性(通过随机数据,模拟各种场景).3)开发无侵入(不需要修改既有代码,就可以拦截 A ...

  9. Zephyr学习专题

    1 前言 本来想学习Zyphyr的Power Management,但是看着看着就被带进去了. 你看功耗,里面的suspend涉及到时间补偿相关的吧,然后就涉及到了Kernel Clocks/Time ...

  10. Log4j2使用笔记

                 log4j2是log4j的最新版,现在已经有很多公司在使用了.log4j2和log4j的优缺点对比,请自行百度. 上一篇笔记讲了关于log4j的使用.这篇笔记主要讲解log4 ...