标签: cellular-automata

Wolfram在XKCD中的第34条规则

#505 xkcd中的悬浮"笑话" 吹捧"我在Wolfram的规则34中称之为规则34".

我知道规则34在互联网方面是什么,我已经用Google搜索了Wolfram是谁,但我很难弄清楚Wolfram的规则34是什么.

那么这个"规则34"究竟是什么呢?

这是漫画:http://xkcd.com/505/.

theory cellular-automata

84
推荐指数
7
解决办法
7万
查看次数

另一个生命游戏问题(无限网格)?

我一直在玩康威的生命游戏,最近发现了一些非常快速的实现,如Hashlife和Golly.(在这里下载Golly - http://golly.sourceforge.net/)

我无法理解的一件事是编码器如何实现无限网格?我们无法保持无限的任何东西,如果你跑得很好并且让几个滑翔机飞过边缘,等待几分钟然后向外缩放,你会看到滑翔机仍在那里空间逃跑,所以在神的名字中如何以编程方式处理这个无限的概念?是否存在记录良好的模式或什么?

非常感谢

algorithm cellular-automata sparse-matrix data-structures conways-game-of-life

16
推荐指数
2
解决办法
7345
查看次数

模拟流体流动的算法

我有一个游戏理念,需要对流体在各种物体周围流动的半真实模拟.想象一下在不规则表面上的水银池,它在各个方向上倾斜.

这适用于游戏,因此不需要100%的物理真实感.最重要的是,计算可以在具有iPhone功能的设备上实时完成.

我认为某种细胞自动机或粒子系统是可行的方法,但我不知道从哪里开始.

有什么建议?

algorithm simulation cellular-automata

14
推荐指数
3
解决办法
1万
查看次数

生命游戏:如何让"实体"并行发展?

好吧标题不清楚,这就是我的意思.

我正在编程某种游戏(比如生命游戏).例如,有动物(每个动物是一个类的Java实例).

所有这些动物都在地图上,所有这些" 世界 "都演变为每个"转向".

这些动物可以在每个回合动作.例如:狼杀死了一只羊.

但是,我对在状态之间进行这些演变的"方法"有困难,因为结果将取决于我循环通过动物的顺序.

示例:

  • 狼先:狼杀了羊(然后羊死了,所以没动作)
  • 羊首先:羊吃了一些草,然后狼(转过狼)狼杀了羊

我怎么解决这个问题 ?

多线程?(但我会有很多动物,比如1000甚至更多......).是否有算法,"方法"来做到这一点?

谢谢

java parallel-processing cellular-automata

7
推荐指数
2
解决办法
1275
查看次数

如何在java中创建任意深度的嵌套数组?

我正在尝试创建一个数组数组等数组...,除了我不知道它需要多少嵌套级别,直到运行时.

根据输入,我可能需要要么int[],int[][],int[][][][][][],或其他任何东西.(对于上下文,我正在尝试为胞自动机构建一个N维网格,其中N作为参数传递.)

我没有任何代码,因为我不知道如何去做; 我怀疑只使用数组是不可能的.任何帮助或替代解决方案,将不胜感激.

java arrays cellular-automata

7
推荐指数
1
解决办法
6708
查看次数

什么是在Wolfram Alpha上显示为加载屏幕的元胞自动机?

在Wolfram Alpha中输入查询时,您通常会在显示结果前看到显示几秒钟的动画.它似乎是一个具有3种不同状态的元胞自动机.

我想知道这个特定的自动机被称为什么,以及我可以在哪里找到有关它的信息.谢谢!

language-agnostic cellular-automata

7
推荐指数
1
解决办法
1001
查看次数

落沙模拟中的水

奇异水物理演示

我目前正在使用 C++ 和 SDL2 开发一个非常简单的“落沙”模拟游戏,并且在让水以更逼真的方式流动方面遇到了问题。我基本上有一个单元格网格,我从下到上,从左到右迭代,如果我找到一个水单元格,我只需检查下面,从下到左,下到右,左然后右的空单元格它移动到它找到的第一个(如果两个对角线单元格或两个水平单元格都是空闲的,它会随机选择)。然后我将它移动到的单元格标记为已处理,以便在该循环的其余部分不会再次检查它。

我的问题是粒子如何移动的一种“左偏”;如果我在屏障上方生成一个正方形的水细胞,一旦粒子开始到达屏障,它们基本上都会向左移动而不移动,而右侧的细胞将以正确的方式向下运行。所以不是形成一个漂亮的三角形,均匀地流向两边,整个形状只会向左移动。每当我从左到右迭代时,这种效果就会逆转,所以我知道这与此有关,但到目前为止我一直在努力修复它。我最初认为这是我如何将单元格标记为已处理的问题,但在数小时的测试中我没有发现该系统有明显的错误。有没有人在开发这样的模拟时遇到过任何类似的挑战,或者知道一些我' 我失踪了?任何帮助将不胜感激。

编辑: 好的,所以我取得了一些进展,但是我遇到了另一个似乎与迭代无关的错误,因为现在我保存了旧单元格的副本并从中读取以决定更新,然后更新原始单元格并显示它。这已经使沙子更好地工作,但是水平检查游离细胞的水现在在水平移动时“消失”。我整个上午都在测试它,但还没有找到解决方案,我认为这可能与我复制数组的方式有关,但据我所知,它似乎有效。

新片段:

模拟.cpp

void Simulation::update()
{
    copyStates(m_cells, m_oldCells); // so now oldcells is the last new state

    for(int y = m_height - 1; y>= 0; y--)
    for(int x = 0; x < m_width; x++)
        {
            Cell* c = getOldCell(x, y); // check in the old state for possible updates
            switch(c->m_type)
            {
                case EMPTY:
                    break;
                case SAND:
                    if(c->m_visited == false) update_sand(x, y);
                    break;
                case WATER:
                    if(c->m_visited == false) update_water(x, y);
                    break;
                default:
                    break; …
Run Code Online (Sandbox Code Playgroud)

c++ simulation cellular-automata game-physics particle-system

6
推荐指数
1
解决办法
269
查看次数

HTML5 + CSS3中turing-complete规则110的实现如何工作?

今天早上,我在纯HTML5 + CSS3(没有javascript)中遇到了规则110的以下实现.按顺序按Tab键和空格键以运行自动机.

http://elilies.com/rule110-full.html

我查看了源代码,但我真的无法弄清楚它是如何跟踪状态的.当按下Tab键时,我认为:焦点选择器开始播放,但我不确定按下空格时会发生什么.

html5 turing-complete cellular-automata css3

5
推荐指数
2
解决办法
3233
查看次数

使用VIM映射模拟细胞自动机?

没有更好的事情,我已经了解到如果你在vim上打开以下文字:

...............X..........................................
...............X..........................................
................XX........................................
..................XX......................................
....................XX....................................
......................XXX.................................
.........................XXX..............................
............................XX............................
..............................XX..........................
................................XX........................
..................................X.......................
...................................X......................
...................................X......................
...................................X......................
..................................X.......................
................................XX........................
..............................XX..........................
............................XX............................
.........................XXX..............................
......................XXX.................................
....................XX....................................
..................XX......................................
................XX........................................
...............X..........................................
...............X..........................................
...............X..........................................
................XX........................................
..................XX......................................
....................XX....................................
......................XXX.................................
.........................XXX..............................
............................XX............................
..............................XX..........................
................................XX........................
..................................X.......................
...................................X......................
...................................X......................
...................................X......................
..................................X.......................
................................XX........................
..............................XX..........................
............................XX............................
.........................XXX..............................
......................XXX.................................
....................XX....................................
..................XX......................................
................XX........................................
...............X..........................................
Run Code Online (Sandbox Code Playgroud)

...设置以下地图:

:noremap t ddGpgg
Run Code Online (Sandbox Code Playgroud)

...按住"t"键,你会看到一个很酷的正弦波.

另一方面,这个:

:noremap t ddGpMddGpgg
Run Code Online (Sandbox Code Playgroud)

用一种很酷的DNA旋转动画来颂扬你的眼睛.VIM映射还有哪些其他整洁的动画?是否可以模拟细胞自动机?

language-agnostic vim macros text cellular-automata

5
推荐指数
1
解决办法
120
查看次数

Stephen Wolfram 的规则 30 模式说明

问题

我正在研究 Wolfram 的 Mathematica 生成随机数的方法,发现它使用了元胞自动机 规则 30。其基本解释如下:

基本元胞自动机的演化完全可以通过一个表格来描述,该表格根据其左侧元胞的值、元胞本身的值以及该元胞的值指定给定元胞在下一代中将具有的状态。它的权利

由于与给定单元格相邻的三个单元格有 2 x 2 x 2 = 2^3 = 8 种可能的二元状态,因此总共有 2^8 = 256 个基本元胞自动机,每个元胞自动机都可以用 8-位二进制数(Wolfram 1983, 2002)。例如,给出规则 30 演变的表格(在二进制中,规则 30 写为30 = 00011110)如下所示。在此图中,三个相邻单元格的可能值显示在每个面板的顶行,中央单元格在下一代中采用的结果值显示在下方中心位置。

第 30 条

问题

上图与表格上部的各个模式有何关联?我知道图表是由它们组成的,但对它如何按顺序形成感到困惑。我没有看到任何行/列的区别特征可能告诉我这些层是使用给定表中的上行构建的。简而言之,我想看看这背后俄罗斯方块现象

wolfram-mathematica rule cellular-automata

3
推荐指数
1
解决办法
1382
查看次数