其它函数 - AlephAlpha/LifeFind GitHub Wiki

除了 SearchPatternLifeFind,这个包里还有以下几个函数:

RuleNumber

把一个规则转写成一个大数字,可以用在 Mathematica 的 CellularAutomaton 函数中,比如说生命游戏(B3/S23)对应的规则在 Mathematica 中是 {RuleNumber["B3/S23"], 2, {1, 1}}

对于 Generations 的规则,会输出相应的 Life-like 规则的数字。

ToRLE

把一个数组转换成 RLE 格式。

可以设置 "Rule" 选项。这只会影响输出的 RLE 中 rule = 后面的部分。

FromRLE

把 RLE 转换成一个数组。

FromAPGCode

apgcode 转换成一个数组。

支持超过两种状态的规则(如 Generations)。

PlotAndPrintRLE

画出一个图样,并打印出它的 RLE。图样以二维数组的形式输入。也可以输入一个二维数组的列表,列表中每个元素代表图样的一代,此时 PlotAndPrintRLE 会画出它的每一代,并打印第一代的 RLE。

可以设置 "Rule" 选项。

LifeFind 相当于 PlotAndPrintRLESearchPattern 的复合。

对于超过两种状态的规则,必须手动设置 "Generations" 选项,比如说三种状态的规则需设置 "Generations" -> 3

Predecessor

尝试搜索图样的祖先Predecessor[pattern, n] 表示搜索第 n 代的祖先。不指定 n 时,n 默认是 1,也就是说,搜的是父母

注意搜索范围有限,搜不出结果不能说明这个图样是伊甸园

可以设置 "Rule" 选项。

不支持 Generations 的规则。

CA

将一个图样演化 n 代,输出一个三维数组。CA[pattern, n, "Rule" -> rule] 相当于 CellularAutomaton[{RuleNumber[rule], 2, {1, 1}}, {pattern, 0}, gen]

可以设置 "Rule" 选项。

不支持 Generations 的规则。

ExportGIF

把一个图样导出成 GIF 文件。用法是 ExportGIF[file, pattern, gen],这里 filepatterngen 分别为要导出到的文件名、图样(一个数组)、绘制的代数。

可以设置 "Rule""DisplayDurations" 两个选项,后者表示 GIF 每一帧的时长,单位为秒,默认值为 0.1

不支持 Generations 的规则。

ExportSpaceshipGIF

ExportGIF 类似,但专用于飞船。ExportSpaceshipGIF[file, pattern, p, dx, dy, s] 表示将周期为 p、每周期平移 (dx, dy) 的图样 pattern (表示为一个二维数组)绘制为一个 GIF,其中每个细胞的大小为 s 像素,输出到文件名 file。这里s * GCD[dx, dy] 必须能被 p 整除。输出的动画中,背景会随飞船的运动而向相反方向运动。

可以设置 "Rule""DisplayDurations" 两个选项,后者表示 GIF 每一帧的时长,单位为秒,默认值为 0.1

不支持 Generations 的规则。

PatternRules

输入一个图样(作为一个三维数组),给出它所满足的所有规则。结果以一个关联列表的形式给出,其中 TrueFalse 分别表示规则中必须有/没有这一项。比如说,<|"B0" -> False, "B3a" -> True, "S4k" -> False|> 表示规则中必须有 B3a,不能有 B0S4k,其它的项则可有可无。

不支持自动判断是不是 B0 的规则;如果是 B0 的规则,需手动设置选项 "B0" -> True

还可以设置 "Hexagonal""Totalistic" 两个选项。这两个选项默认为 False;当设置 "Hexagonal" -> True 时,给出的是六边形的规则;当设置 "Totalistic" -> True 时,给出的是 totalistic 的规则(即原本的 Life-like 规则)。

不支持 Generations 的规则。

ToRuleString

把一个邻域名称的列表(形如 {"B0", "B3a", "S4k"} )合并成一个规则名称。

注意由其产生的规则名称是没经过简化的,会把 "B3/S23" 写成 "B3aceijknqry/S2aceikn3aceijknqry"

可以设置 "Hexagonal" 选项。此选项默认为 False;当设为 True 时,会在规则名称后面添加字母 H

还可以设置 "Generations" 选项。此选项默认为 2;当设为大于 2 的自然数 n 时,给出的是有 n 种状态的 Generations 规则的名称。

$Rule

这只是一个符号,不是函数,代表全局的默认规则(即 "Rule" 选项的默认值)。它的默认值是 "B3/S23"(生命游戏)。

如果需要大量搜索同一个规则,可以先更改 $Rule 的值,这样就不必在每次搜索的时候都设置 "Rule" 选项。

⚠️ **GitHub.com Fallback** ⚠️