锑星杂记

AlephAlpha 写的一些乱七八糟的东西


  • 首页

  • 标签

  • 归档

  • 站点地图

  • 搜索

又写了一个生命游戏搜索程序

发表于 2019-06-15
生命游戏

1969到1970年,在创造生命游戏的过程中,约翰·康威和他的同事们在棋盘上进行了各种试验和搜索,并发现了最初的四种飞船:滑翔机、轻型飞船、中型飞船、重型飞船。

此后二十年间,通过手动搜索,或者借助计算机的帮助,人们又发现了大量的图样:静物,振荡子,枪,Puffer……但所发现的飞船只是以上四种飞船的组合或变种,或者只是在飞船后面添上一个 tagalong。此时没有真正的搜索程序,计算机在搜索中的用法和棋盘没有本质区别。

直到1989年,Dean Hickerson 用汇编语言写了一个叫 LS 的小程序,并用它发现了第一艘全新的飞船:64P2H1V0。此后,David Bell 又用 C 语言实现了 Dean Hickerson 的算法,写出了 lifesrc。人们用 LS 和 Dean Hickerson 发现了大量的新飞船,以及别的图样。可以说,这两个程序开启了生命游戏研究的一个新时代。

(有点想写一系列文章来详细介绍生命游戏搜索的历史……不过我懒。)

阅读全文 »

测试在 Hexo 中插入 LifeViewer

发表于 2019-03-12 | 更新于 2019-05-11
生命游戏

测试在 Hexo 中插入 LifeViewer。

以下 RLE 来自 LifeWiki 的 LifeViewer 页面:

x = 59, y = 7, rule = B3/S23
o5b5ob5ob5obo3bob5ob5obobobob5ob4o$o7bo3bo5bo5bo3bo3bo3bo5bobobobo5bo
3bo$o7bo3bo5bo5bo3bo3bo3bo5bobobobo5bo3bo$o7bo3b3o3b3o3bo3bo3bo3b3o3bo
bobob3o3b4o$o7bo3bo5bo5bo3bo3bo3bo5bobobobo5bo3bo$o7bo3bo5bo6bobo4bo3b
o5bobobobo5bo3bo$5ob5obo5b5o3bo3b5ob5o2bobo2b5obo3bo!
#C [[ COLOUR DEAD 0 0 0 COLOUR ALIVE 0 0 0 ]]
#C [[ LOOP 1101 STARS NOSTEPBACK ]]
#C [[ AUTOSTART X -90 Y 60 LAYERS 6 ZOOM 4 DEPTH 3 ]]
#C [[ PAUSE 3 X 90 Y -60 ANGLE 20 THEME 0 ]]
#C [[ PAUSE 1.5 X 90 Y 60 ANGLE 340 ZOOM 6 ]]
#C [[ PAUSE 1.5 X 0 Y 0 ANGLE 0 THEME 3 ZOOM 4 ]]
#C [[ PAUSE 1 X 0 DEPTH 0.2 ZOOM 6 THEME 4 ]]
#C [[ T 1 THEME 7 ]]
#C [[ T 400 ZOOM 5 X 5 Y -10 THEME 2 ]]
#C [[ T 450 DEPTH 5 ]]
#C [[ T 560 X -155 Y 127 DEPTH 0.5 ]]
#C [[ T 950 X -242 Y 214 ANGLE 20 ]]
#C [[ T 1050 DEPTH 0 ANGLE 0 AUTOFIT "#T" ]]
#C [[ T 1100 X 0 Y 0 ZOOM 0.25 THEME CUSTOM ]]
阅读全文 »

用 Mathematica 搜索生命游戏中的静物(三)

发表于 2019-03-04 | 更新于 2019-05-16
Mathematica 简书搬运 生命游戏
  • 用 Mathematica 搜索生命游戏中的静物
  • 用 Mathematica 搜索生命游戏中的静物(二)

我把《用 Mathematica 搜索生命游戏中的静物(二)》里的代码整理了一下,写成了个叫做 LifeFind 的 Mathematica 包。现在它支持不同的规则和对称性,可以搜索静物之外的图样,但搜索速度并没有提高。可以在这里下载。

需要强调的是,我之所以用 SAT,不是因为它是最好/最快的办法,而是因为我完全不懂算法,只能用 Mathematica 里现成的函数。

以下是这个包的一些使用范例 :

阅读全文 »

Wolfram|Alpha 计算时显示的元胞自动机(三)

发表于 2019-03-02 | 更新于 2019-05-11
Mathematica 简书搬运 生命游戏
  • Wolfram|Alpha 计算时显示的元胞自动机(一)
  • Wolfram|Alpha 计算时显示的元胞自动机(二)

现在我给 LifeFind (即前面提到的用来搜索生命游戏中的图样的那个 Mathematica 包)加上了搜索 Generations 规则的功能。于是,它也能够搜 Wolfram|Alpha 的那个元胞自动机。

搜索速度很慢,而且只能搜周期很小的图样,于是其实没有太多有意思的发现。不过,至少振荡子不再只有那么几个了。

运行以下的 Mathematica 代码之前先要导入 LifeFind 包(当然,导入之前先要安装):

<< Life`

搜索结果是随机的。输入下面的代码来搜索很可能会搜出不同的图样。

阅读全文 »

亚美尼亚的 Ashugh 和 Gusan

发表于 2018-12-24 | 更新于 2019-05-11
简书搬运 音乐

我常常在 YouTube 上找亚美尼亚歌曲来听。听得到了,就会经常看到这两个词:Ashugh 和 Gusan。一开头我还以为这是亚美尼亚的常见人名;查了一下之后,发现并非如此。

我完全不懂亚美尼亚语,俄语也是刚看懂字母表的水平,对亚美尼亚文化也并不了解。这篇文章里可能会有不少奇奇怪怪的误解。若是发现由错误的地方,欢迎指正。


Ashugh(աշուղ)和 Gusan(գուսան)这两个词,指的都是亚美尼亚传统的音乐家:他们是诗人,是歌手,也是作曲家。

Ashugh 是吟游诗人。他们从城市走到城市,从村庄走到村庄,以不同的语言即兴创作。与他们相伴的只有自己的乐器:可能是萨兹琴(սազ,saz),塔尔琴(թառ,tar),也可能是卡曼恰(քամանչա,kamancha)。他们的创作题材多种多样,其中最常见的是爱情。事实上,ashugh 这个词正是来自阿拉伯语 عَاشِق‎ (ʿāšiq),意思好像是恋人。

阅读全文 »

生命游戏搜索程序汇总

发表于 2018-08-10 | 更新于 2019-06-15
简书搬运 生命游戏

更新:LifeWiki 上有一个更详细的汇总。

名称 作者 搜索方式 编程语言 平台 网址 备注
apgsearch (2.0 以上版本) Adam P. Goucher 汤 C++ 64 位 Linux GitLab
apgsearch (1.x 版) Adam P. Goucher 汤 Python Golly 脚本 Catagolue
ikpx Adam P. Goucher SAT 问题 Python 跨平台 GitLab 仅支持生命游戏
Logic Life Search Oscar Cunningham SAT 问题 Python 号称跨平台(Windows 下需要 Cygwin) GitHub 需要自备 SAT Solver
gfind David Eppstein 见相关论文 C 跨平台 代码 专搜飞船
gsearch David Eppstein 给定范围里的暴力搜索 C 跨平台 代码 很慢
ofind David Eppstein 类似于gfind C 跨平台 代码 专搜振荡子
lifesrc David Bell Dean Hickerson 发明的算法,回溯法 C 跨平台 代码
JavaLifeSearch Karel Suhajda 同 lifesrc Java 跨平台 帖子 lifesrc 的 Java 版
WinLifeSearch Jason Summers 同 lifesrc C Windows 官网 lifesrc 的 Windows(图形界面)版
catalyst) Gabriel Nivasch 静物与给定图样的反应 C++ 跨平台 代码 专搜催化
Random Agar Gabriel Nivasch 类似于汤 C++ 跨平台 代码 专搜琼脂
CatForce simsim314 暴力搜索? C++ 跨平台 Github 专搜催化
yfind strake SMT Haskell 跨平台 Github 需要 Z3
qfind Matthias Merzenich 类似 gfind C 跨平台 帖子
zfind zdr 类似 gfind C++ 跨平台 Github
life slice ship search Andrew Wade 见其 Readme Rust Linux GitLab

Wolfram|Alpha 计算时显示的元胞自动机(二)

发表于 2018-08-09 | 更新于 2019-05-11
Mathematica 简书搬运 生命游戏
  • Wolfram|Alpha 计算时显示的元胞自动机(一)
  • Wolfram|Alpha 计算时显示的元胞自动机(三)

这篇文章没什么内容,只是列举一些我们找到的图样。

原本发在简书时是我自己用 Mathematica 画得的图,转发到这里的时候全部换成 LifeViewer。

对随机的开局,这个元胞自动机也有可能会稳定下来,但大部分情况下会保持一种乱糟糟的状态,缓慢地无限增长。按照 Wolfram 对元胞自动机的分类,它应该算是 Chaotic 的。

阅读全文 »

维基百科的新年图标

发表于 2018-07-14 | 更新于 2019-05-11
简书搬运 果壳搬运 维基百科

第一次发现俄语维基百科的新年图标是在2013年1月3日。当时我在果壳的维基百科小组发了这么一个帖子:《俄文维基的新图标》。帖子中的图片是外链,现在已看不到原来的图标,只记得那是维基的球上冻了一层冰块(参见下文中2015年塞尔维亚语维基的图标)。我还不明白这个图标的意义,但mraandtux在回帖中猜测:

冬季特别Logo(恭喜俄文维基“渡劫”成功)?

燃玉的猜测则是:

难道是抗议某法案?

阅读全文 »

Wolfram|Alpha 计算时显示的元胞自动机(一)

发表于 2018-07-09 | 更新于 2019-05-11
Mathematica 简书搬运 生命游戏
  • Wolfram|Alpha 计算时显示的元胞自动机(二)
  • Wolfram|Alpha 计算时显示的元胞自动机(三)

果壳网已完,不知道我发过的帖子什么时候会消失,于是我要把它们搬到简书。

(注:在搬到新的博客的时候,这个帖子,以及整个果壳小组,都已经消失了。)

但这篇不是搬运,只是想说一下这个帖子背后的故事……以及代码。


Wolfram|Alpha 在显示计算或查询的结果之前,往往需要思考一番。几年前,它在思考过程的中会显示一个漂亮的图案。现在那个图案已经变成了一个无聊的 COMPUTING...,不过网上还是留下了一点痕迹,比如说知乎的这个问题:Wolfram|Alpha在搜索时出现的图案有什么含义?和 StackOverflow 的这个问题:What is the cellular automaton shown as loading screen on Wolfram Alpha?

我也一直想知道这是什么图案。它显然是一个元胞自动机,大小不同的点表示不同的状态;而且状态不止一种,因此肯定不是生命游戏,也不是生命游戏家族(Life-like)的规则。但它思考的速度太快,我总是来不及看清它到底是什么规则。

阅读全文 »

可以用克罗内克符号来画龙曲线

发表于 2018-07-02 | 更新于 2019-05-11
简书搬运 果壳搬运

原发于果壳 Today I Learned 小组。后面补充的部分来自我在知乎的一个回答。


学过数论的应该都知道勒让德符号。对于一个整数 $a$ 和一个素数 $p$ ,勒让德符号 $\left(\frac{a}{p}\right)$ 定义为:如果 $a \equiv 0 \pmod{p}$,则 $\left(\frac{a}{p}\right) = 0$;否则,如果存在一个整数 $x$ 使得 $x^2 \equiv a \pmod{p}$,则 $\left(\frac{a}{p}\right) = 1$;如果不存在这样的 $x$,则 $\left(\frac{a}{p}\right) = -1$。总之,就是看 $a$ 是不是与某个数的的平方模 $p$ 同余。勒让德符号有很多有趣的性质,在数论里十分有用。

勒让德符号中的 $p$ 只能是素数。雅克比把它推广了一下。对于一个正奇数 $m$,如果它的素因数分解是 $m = p_1 p_2 \cdots p_s$,那么定义雅克比符号 $\left(\frac{n}{m}\right) = \left(\frac{n}{p_1}\right) \left(\frac{n}{p_2}\right) \cdots \left(\frac{n}{p_s}\right)$,其中右边那一串就是勒让德符号。

阅读全文 »
12…4
AlephAlpha

AlephAlpha

40 日志
9 标签
RSS
Creative Commons
© 2019 AlephAlpha
由 Hexo 强力驱动 v3.8.0
|
主题 – NexT.Pisces v7.0.1
Powered by LifeViewer