其它函数 - AlephAlpha/LifeFind GitHub Wiki
除了 SearchPattern 和 LifeFind,这个包里还有以下几个函数:
把一个规则转写成一个大数字,可以用在 Mathematica 的 CellularAutomaton 函数中,比如说生命游戏(B3/S23)对应的规则在 Mathematica 中是 {RuleNumber["B3/S23"], 2, {1, 1}}。
对于 Generations 的规则,会输出相应的 Life-like 规则的数字。
把一个数组转换成 RLE 格式。
可以设置 "Rule" 选项。这只会影响输出的 RLE 中 rule = 后面的部分。
把 RLE 转换成一个数组。
把 apgcode 转换成一个数组。
支持超过两种状态的规则(如 Generations)。
画出一个图样,并打印出它的 RLE。图样以二维数组的形式输入。也可以输入一个二维数组的列表,列表中每个元素代表图样的一代,此时 PlotAndPrintRLE 会画出它的每一代,并打印第一代的 RLE。
可以设置 "Rule" 选项。
LifeFind 相当于 PlotAndPrintRLE 和 SearchPattern 的复合。
对于超过两种状态的规则,必须手动设置 "Generations" 选项,比如说三种状态的规则需设置 "Generations" -> 3。
尝试搜索图样的祖先。Predecessor[pattern, n] 表示搜索第 n 代的祖先。不指定 n 时,n 默认是 1,也就是说,搜的是父母。
注意搜索范围有限,搜不出结果不能说明这个图样是伊甸园。
可以设置 "Rule" 选项。
不支持 Generations 的规则。
将一个图样演化 n 代,输出一个三维数组。CA[pattern, n, "Rule" -> rule] 相当于 CellularAutomaton[{RuleNumber[rule], 2, {1, 1}}, {pattern, 0}, gen]。
可以设置 "Rule" 选项。
不支持 Generations 的规则。
把一个图样导出成 GIF 文件。用法是 ExportGIF[file, pattern, gen],这里 file、pattern、gen 分别为要导出到的文件名、图样(一个数组)、绘制的代数。
可以设置 "Rule" 和 "DisplayDurations" 两个选项,后者表示 GIF 每一帧的时长,单位为秒,默认值为 0.1。
不支持 Generations 的规则。
与 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 的规则。
输入一个图样(作为一个三维数组),给出它所满足的所有规则。结果以一个关联列表的形式给出,其中 True 和 False 分别表示规则中必须有/没有这一项。比如说,<|"B0" -> False, "B3a" -> True, "S4k" -> False|> 表示规则中必须有 B3a,不能有 B0 和 S4k,其它的项则可有可无。
不支持自动判断是不是 B0 的规则;如果是 B0 的规则,需手动设置选项 "B0" -> True。
还可以设置 "Hexagonal" 和 "Totalistic" 两个选项。这两个选项默认为 False;当设置 "Hexagonal" -> True 时,给出的是六边形的规则;当设置 "Totalistic" -> True 时,给出的是 totalistic 的规则(即原本的 Life-like 规则)。
不支持 Generations 的规则。
把一个邻域名称的列表(形如 {"B0", "B3a", "S4k"} )合并成一个规则名称。
注意由其产生的规则名称是没经过简化的,会把 "B3/S23" 写成 "B3aceijknqry/S2aceikn3aceijknqry"。
可以设置 "Hexagonal" 选项。此选项默认为 False;当设为 True 时,会在规则名称后面添加字母 H。
还可以设置 "Generations" 选项。此选项默认为 2;当设为大于 2 的自然数 n 时,给出的是有 n 种状态的 Generations 规则的名称。
这只是一个符号,不是函数,代表全局的默认规则(即 "Rule" 选项的默认值)。它的默认值是 "B3/S23"(生命游戏)。
如果需要大量搜索同一个规则,可以先更改 $Rule 的值,这样就不必在每次搜索的时候都设置 "Rule" 选项。