Googology-BMS(巴氏库矩阵系统)(1)
原作者;佩勒
基于PrSS,我们的巴氏库大神在2014年又提出了另一个更大的系统-BMS,然而想要定义它太难了,直到2018年才定义好,它也是公认的现阶段比较强大的记号之一
BMS的本质上是将PrSS拆分成多行,写下来大概是这样:
/ 0 1 2 3 2 \
| 0 1 1 1 2 |
\ 0 1 1 0 0 /
但这样的BMS在正常情况下是打不出来的,所以我们会将它每一列单独出来,改写成:
(0,0,0)(1,1,1)(2,1,1)(3,1,0)(2,2,0)--A
想进一步压缩长度,可以删掉所有末尾的0,只在第一行保留一个:
(0)(1,1,1)(2,1,1)(3,1)(2,2)--B
更有甚者可以将括号和分隔符去掉:
000 111 211 310 220--C
或
0 111 211 31 21--D
本文及后续文章统一采用C写法,但现在在尝试展开,所以暂时用传统写法,忽略掉大括号
0 1 2 3 2
0 1 1 1 2
0 1 1 0 0
首先是第一行的展开,在项左边又小于它的项为父项(这和LPrSS和HPrSS是一样的)
提出父项之后不断往前提父项的父项,最后得到的就是项的祖先项(父亲的父亲的…不就是构成祖先了吗?)
比如第一行第五个项2,它的父项是第一行第二个1,祖先项是第一行第一个0和第二个1
第二行和其他行的父项定义和第一行一样,但是判断同时要确认上方的项的父项是否在这一项上方
比如这里,第二行第五个2直接提是第四个1,但是上面不是第一行的,所以它不是,它的父项是第二行第二个的1
接下来找坏根
坏根定义是“最后一列中,从下往上找到第一个不是0的项,它的父项所在的列”
为了图省事,我们用aij表示第i行第j列
最后一列,也就是ai5,从a35找起,a35=0,是0,找a25,是2不是0,找a25父项,是a22的1,所以坏根是a2j,即:
0 1 2 3 2
0 1 1 1 2
0 1 1 0 0
或111
找到坏根,好部和坏部的定义和PrSS一样,只不过是拓展到了多行
在这里,好部是000,坏部是111 211 310
接下来要计算阶差Δ
阶差Δ=最后一列-坏根,但是最后一项无论怎么样都是0,如果最后一列的某项是0,这一项得到的阶差的上一项也是0
这里最后一列是220,坏根是111,Δ=220-111=11(-1),但因为最后一项无论怎么样都要是0,所以Δ=110,但是又因为第三行的a35=0,所以第二个项也要是0,所以Δ=100
在加上去的时候,如果坏部中的某一项的祖先项不含坏根,就不加阶差
这里的坏部是:
1 2 3
1 1 1
1 1 0
其中a23,a24,a33,a34祖先项没有到坏根,所以不用加
加完后是:
211 311 410
311 411 510
…
删掉最后一列,再拼起来:
000 111 211 310 211 311 410 311 411 510 …
就展开了
但要注意的是,因为阶差Δ=100,而不加阶差的两项本来是要加上阶差0的,加了和没加一样,所以忽略掉最后一条规则,得到的结果也对
以另一个例子000 111 222 331 411 322 222为例子
找坏根:111
好部=000
坏部=111 222 331 411 322
阶差Δ=110
坏部不加项的是a25=1,a34=1,a35=1
所以加上去后是:
221 332 441 511 432
331 442 551 611 542
…
组合起来:
000 111 222 331 411 322 221 332 441 511 432 331 442 551 611 542 …
于是就展开了
BMS乍一看不强大,到上手的时候发现自己在分析一个庞然大物,下期我们开始分析
投票/表态
帖子ID:6a5b2f8988313
查看每个帖子点“好”的有几个人 查看每个帖子点“差”的有几个人 查看每个帖子点“何意味”的有几个人