#numbers #advanced-research #theory

algexenotation

在Rust中实现Algexenotation

5个版本 (3个重大更新)

0.4.0 2024年1月6日
0.3.0 2022年9月17日
0.2.1 2022年8月24日
0.2.0 2022年4月18日
0.1.0 2022年3月7日

#264 in 数学

MIT许可证

52KB
797

Algexenotation

Algexenotation是一种将多重集表示为具有代数压缩的自然数的方法。受Tic Xenotation的启发。更多信息,请参阅论文

动机

  • 建模有序笛卡尔组合学
  • Tic Xenotation的代数压缩
  • 将超图编码为自然数

三角形示例

此示例显示三角形是17719'

               0
               o
              / \
       1+0*1 /   \ 1+2*0
            /     \
         1 o-------o 2
             1+1*2

三角形中有3个节点0, 1, 2。在Algexenotation中,这些是超素数。

ab的边被编码为1+a*b

3条边的乘积就是三角形。

use algexenotation::*;

fn main() {
    let n = ax!((1+0*1) * (1+1*2) * (1+2*0));
    // Prints `17719'`.
    println!("{}", n.original());
}

Algexenotation简介

Algexenotation可以看作是素数分解的推广。

原始数字

在Algexenotation中,“原始数字”就是我们通常认为的自然数,例如,“四”写成4',后面有一个"'"。

指数

当评估4'时,我们得到0^0。在这里,0不是一个原始数字,而是0th素数,即2'

指数运算符^以常规方式解释,即0^02'^2'相同。

乘法

在Algexenotation中,除了0'1'之外的所有原始数字都会被评估为另一种形式。这个过程与素数分解相对应。

例如,6'会被评估为0*1。在这里,0 = 2'1 = 3'

乘法运算符*按照常规方式解释。

加法

Algexenotation与常规记法不同的地方在于,加法意味着完全不同的东西。

例如,2' + 3'不会评估为5'。相反,由于0 = 2'1 = 3'2' + 3'评估为0 + 1 = 1

适应这种加法思考方式需要一段时间。如果你一开始不理解,请不要慌张!Algexenotation有时会让人感到困惑。

然而,当你添加两个简单的Algexenic数时,例如6 + 7 = 13,你可以像平常一样进行计算。

超素数

Algexenotation中加法之所以能够以这种方式工作,是因为“超素数”。

超素数在Algexenotation中写作0, 1, 2, 3, ...

最小的超素数是0 = 2',因为它是在自然数素数序列中的第0个素数。

下一个超素数是1 = 3',因为它是在2'之后的第2个素数(或第0个素数)。

下一个超素数是2 = 5',因为它是在3'之后的第3个素数(或第1个素数)。

下一个超素数是3 = 11',因为它是在5'之后的第5个素数(或第2个素数)。

下一个超素数是4 = 31',因为它是在11'之后的第11个素数(或第3个素数)。

下一个超质数是 5 = 127',因为它是最小的第 31' 个质数(或第 4 个质数)。

请注意,下一个超质数是指质数序列中前一个超质数的质数。

这个序列是质数序列的一个子序列,但增长速度要快得多。

数字 7' 是 Algexenotation 中最小的“加法”数。

1+0^0 = 7'

这意味着必须使用 + 来表示 7'

现在,由于 0^0 = 4'4'1 = 3'2 = 5' 之间,所以直观地认为 3'+4'=7'。然而,这是错误的。

十三

数字 13' 是 Algexenotation 中第二个“加法”数。

1+0*1 = 13'

如果我们按照通常的方式解释 +,那么我们得到 3'+2'*3' = 9',这是错误的。

相反,+ 必须被视为与通常意义上的不同类型的加法。它在超质数中正常工作,但对于其他数字则更难理解。

正确解释 1+0*1 的方法是将它视为第 6' 个质数(或第 0*1 个质数)。

十四

第一个具有两个不同质数基的合数是 14'

0*(1+0^0) = 14'

这是直观的,因为 0 = 2'1+0^0 = 7'

十七

在 Algexenotation 中使用 2 的第一个“加法”数是 17'

2+0^0 = 17'

正确解释的方法是:1+(1+0^0),其中 1+0^0 = 7',因此得到第 7' 个素数。

依赖关系

~4MB
~69K SLoC