Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >R中实现生命游戏简单图形

R中实现生命游戏简单图形

作者头像
Listenlii-生物信息知识分享
发布于 2022-03-31 13:44:59
发布于 2022-03-31 13:44:59
77000
代码可运行
举报
运行总次数:0
代码可运行

昨天简单介绍了一篇文章及生命游戏在R中的实现:

PNAS:模拟微生物群落互作及生命游戏在R中的实现

生命游戏中有不少有趣的图形,今天又玩了一下,顺便做一介绍。代码用昨天的即可实现。

注意,代码中判断下个状态是否有细胞存在这句改了一下,之前理解的有点问题,另外规则也不完全对。判断规则参考https://conwaylife.com/wiki/Main_Page

稳定:如果细胞的邻居为2个或3个,则下一次状态为稳定存活;

复活:如果某位置原无细胞存活,而该位置的邻居为3个,则该位置将复活一个细胞。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
life.next[i,j] =  ifelse( ((fun.sum == 2|fun.sum == 3)& life[[k-1]][i,j]==1) | (fun.sum == 3 & life[[k-1]][i,j]==0), 1, 0)

生命游戏基本图形介绍及在R中的实现:

只需要改变初始输入的矩阵即可。

1. 固定模式。即图形不会发生变化。如四个细胞围成的正方形。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 恒定
size = 4  
d1 = c(0,0,0,0,
       0,1,1,0,
       0,1,1,0,
       0,0,0,0)
start = matrix(data=d1,ncol=size,nrow=size)

2. 震荡模式,图形会在几个样式之间来回震荡,如一条线的样式。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 震荡
size = 5  
d2 = c(0,0,0,0,0,
       0,0,1,0,0,
       0,0,1,0,0,
       0,0,1,0,0,
       0,0,0,0,0)
start = matrix(data=d2,ncol=size,nrow=size)

3. 滑翔机模式。细胞会像滑翔机一样不断移动且变化样式。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 滑翔机
size = 6 
d3 = c(0,0,0,1,0,0,
       0,1,0,1,0,0,
       0,0,1,1,0,0,
       0,0,0,0,0,0,
       0,0,0,0,0,0,
       0,0,0,0,0,0)
start = matrix(data=d3,ncol=size,nrow=size)

4. 脉冲星。细胞好像脉冲星一样的炸裂。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
size = 15  
d4 = c(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
       0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,
       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
       0,1,0,0,0,0,1,0,1,0,0,0,0,1,0,
       0,1,0,0,0,0,1,0,1,0,0,0,0,1,0,
       0,1,0,0,0,0,1,0,1,0,0,0,0,1,0,
       0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,
       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
       0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,
       0,1,0,0,0,0,1,0,1,0,0,0,0,1,0,
       0,1,0,0,0,0,1,0,1,0,0,0,0,1,0,
       0,1,0,0,0,0,1,0,1,0,0,0,0,1,0,
       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
       0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,
       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
start = matrix(data=d4,ncol=size,nrow=size)

更多好玩的图形,详见:

https://conwaylife.com/wiki/Main_Page

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-02-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Listenlii 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
PNAS:模拟微生物群落互作及生命游戏在R中的实现
Link:https://www.pnas.org/content/119/1/e2020956119
Listenlii-生物信息知识分享
2022/03/31
9060
PNAS:模拟微生物群落互作及生命游戏在R中的实现
NumPy 初学者指南中文第三版:11~14
本章适用于希望使用 NumPy 和 Pygame 快速轻松创建游戏的开发人员。 基本的游戏开发经验会有所帮助,但这不是必需的。
ApacheCN_飞龙
2023/04/17
3.1K0
NumPy 初学者指南中文第三版:11~14
2.LifeGame生命游戏
这个东西以前在看知乎的时候就看到过,感觉挺好玩的。最近又看到了,细细看了一下原理,恍然大悟这不就是一个空域滤波么?写一个应该很好玩吧?于是就动手了,为了显示方便用的Opencv的Mat数据结构来存取数据和显示。写了一下午差不多就可以了,后面再加了些配置文件的接口,并给了一些配置文件,这里记录一下。
和蔼的zhxing
2019/01/03
3.1K0
神奇的生命游戏,是什么?
生命游戏是一个零玩家游戏,展示了一个二维方格子世界,在每个方格子中居住者一个活着的或者死了的细胞,这些细胞按照生命游戏约定的规则进行模拟,显示的图像看起来颇似生命的出生、繁衍和死亡过程而得名为“生命游戏”。
ChildhoodAndy
2021/09/24
1.2K0
复杂性思维中文第二版 六、生命游戏
在本章中,我们考虑二维细胞自动机,特别是 John Conway 的生命游戏(GoL)。 像上一章中的一些 CA 一样,GoL 遵循简单的规则并产生令人惊讶的复杂行为。 就像沃尔夫勒姆的规则 110 一样,事实证明 GoL 是通用的;也就是说,至少在理论上它可以计算任何可计算的函数。
ApacheCN_飞龙
2022/12/01
5440
R语言Circlize包绘制和弦图
和弦图可用于表示数据间的关系和流量。外围不同颜色圆环表示数据节点,弧长表示数据量大小。内部不同颜色连接带,表示数据关系流向、数量级和位置信息,连接带颜色还可以表示第三维度信息。首尾宽度一致的连接带表示单向流量(从与连接带颜色相同的外围圆环流出),而首尾宽度不同的连接带表示双向流量。外层加入比例尺,还可以一目了然的发现数据流量所占比例。
DoubleHelix
2019/08/07
12.8K0
高度定制的go和kegg富集分析R语言绘图 | Circular barplot
我前面的甲基化教程主要是针对450k这样的芯片,所以champ流程就绰绰有余,很多小伙伴在咱们公众号后台咨询甲基化测序数据分析,恰好最近实习生投稿:
生信技能树
2022/01/21
5.2K0
高度定制的go和kegg富集分析R语言绘图 | Circular barplot
全网最全的R语言基础图形合集
直方图是一种对数据分布情况进行可视化的图形,它是二维统计图表,对应两个坐标分别是统计样本以及该样本对应的某个属性如频率等度量。
生信学习者
2024/06/12
970
全网最全的R语言基础图形合集
超详细的R语言热图绘制之complexheatmap:01
本书是对ComplexeHeatmap包的中文翻译(1-6章),部分内容根据自己的理解有适当的改动,但总体不影响原文。如有不明之处,以原文为准。原文请见:https://jokergoo.github.io/ComplexHeatmap-reference/book/
医学和生信笔记
2022/05/30
4.3K0
我们为你精选了一份Jupyter/IPython笔记本集合 !(附大量资源链接)-下篇
在Blogger中使用IPython发博客,也可以在博客文章中找到,完整的报告在这里。作者:Fernando Perez。
数据派THU
2019/05/09
1.4K0
我们为你精选了一份Jupyter/IPython笔记本集合 !(附大量资源链接)-下篇
R语言笔记完整版[通俗易懂]
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说R语言笔记完整版[通俗易懂],希望能够帮助大家进步!!!
Java架构师必看
2022/02/08
4.6K0
R语言笔记完整版[通俗易懂]
R语言学习笔记
请注意,本文编写于 398 天前,最后修改于 378 天前,其中某些信息可能已经过时。
曼亚灿
2023/05/17
2.5K0
R语言学习笔记
R语言函数的含义与用法,实现过程解读
R的源起 R是S语言的一种实现。S语言是由 AT&T贝尔实验室开发的一种用来进行数据探索、统计分析、作图的解释型语言。最初S语言的实现版本主要是S-PLUS。S-PLUS是一个商业 软件,它基于S语言,并由MathSoft公司的统计科学部进一步完善。后来Auckland大学的Robert Gentleman 和 Ross Ihaka 及其他志愿人员开发了一个R系统。R的使用与S-PLUS有很多类似之处,两个软件有一定的兼容性。 R is free R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的
学到老
2018/03/19
4.8K0
人工智能学术速递[7.12]
【1】 Learning Interaction-aware Guidance Policies for Motion Planning in Dense Traffic Scenarios 标题:密集交通场景下运动规划的学习交互感知诱导策略
公众号-arXiv每日学术速递
2021/07/27
6240
机器学习学术速递[12.15]
【1】 Robust Graph Neural Networks via Probabilistic Lipschitz Constraints 标题:基于概率Lipschitz约束的鲁棒图神经网络 链接:https://arxiv.org/abs/2112.07575
公众号-arXiv每日学术速递
2021/12/17
8220
统计学学术速递[12.21]
【1】 Hypothesis testing and confidence sets: why Bayesian not frequentist, and how to set a prior with a regulatory authority 标题:假设检验和置信集:为什么贝叶斯不是常客,以及如何设置监管机构的优先事项 链接:https://arxiv.org/abs/2112.10685
公众号-arXiv每日学术速递
2021/12/24
1.3K0
统计学学术速递[7.19]
【1】 A New Robust Multivariate Mode Estimator for Eye-tracking Calibration 标题:一种新的用于眼动定标的鲁棒多变量模式估计器
公众号-arXiv每日学术速递
2021/07/27
8410
人工智能学术速递[7.27]
【1】 Contextual Transformer Networks for Visual Recognition 标题:用于视觉识别的上下文变换网络
公众号-arXiv每日学术速递
2021/07/28
2.1K0
TensorFlow 深度学习第二版:1~5
人工神经网络利用了 DL 的概念 。它们是人类神经系统的抽象表示,其中包含一组神经元,这些神经元通过称为轴突的连接相互通信。
ApacheCN_飞龙
2023/04/23
1.7K0
TensorFlow 深度学习第二版:1~5
人工智能学术速递[7.7]
【1】 Improving Coherence and Consistency in Neural Sequence Models with Dual-System, Neuro-Symbolic Reasoning 标题:用双系统、神经-符号推理提高神经序列模型的一致性和一致性
公众号-arXiv每日学术速递
2021/07/27
1.1K0
相关推荐
PNAS:模拟微生物群落互作及生命游戏在R中的实现
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验