主题
Search

配对函数


配对函数是一个可逆地将 Z^*×Z^* 映射到 Z^* 的函数,其中 Z^*={0,1,2,...} 表示 非负整数。配对函数自然地出现在证明有理数 Q 和非负整数 Z^* 的基数相同,即 |Q|=|Z^*|=aleph_0,其中 aleph_0 被称为 aleph-0,最初由 Georg Cantor 提出。配对函数也出现在编码问题中,在这些问题中,整数值的向量需要可逆地折叠成单个整数值。

||||||...
51520263341...
41014192532...
369131824...
23581217...
1124711...
i/j12345...

 Delta(x)=1/2x(x+1),
(1)

然后 Hopcroft 和 Ullman(1979,第 169 页)定义了配对函数

<i,j>=Delta(i+j-2)+i
(2)
=1/2(i+j-2)(i+j-1)+i,
(3)

如上表所示,其中 i,j in {1,2,3,...}。逆函数可以从以下公式计算得出

h=<i,j>
(4)
c=|_sqrt(2h)-1/2_|
(5)
i=h-Delta(c)
(6)
j=c-i+2,
(7)

其中 |_x_|向下取整函数

|||||||...
5152230394960...
4101623314050...
361117243241...
23712182533...
1148131926...
002591420...
i/j012345...

Hopcroft-Ullman 函数可以重新参数化,使得 ij{0,1,2,...} 中,而不是 {1,2,3,...} 中。这个函数被称为康托函数,由下式给出

 <i,j>_(Cantor)=<i+1,j+1>_(HU)-1,
(8)

如上表所示。它的逆函数由下式给出

k=<i,j>_(Cantor)+1
(9)
{i^',j^'}=<k>_(HU)^(-1)
(10)
{i,j}={i^'-1,j^'-1}.
(11)

Fueter 和 Pólya 的一个定理指出,康托尔配对函数和 Hopcroft 与 Ullman 的变体是唯一具有实值系数的二次函数,可以将 Z^*×Z^* 可逆地映射到 Z^* (Stein 1999, pp. 448-452)。

|||||...
1120243341...
1012192532...
49131826...
3581417...
126715...
|||||...
1718192021...
1615141322...
5671223...
4381124...
1291025...

Stein (1999) 提出了两种回文式(“牛耕式”)变体,如上所示,但没有给出明确的公式。

|||||||||...
74243464758596263...
64041444556576061...
53435383950515455...
43233363748495253...
31011141526273031...
289121324252829...
1236718192223...
0014516172021...
i/j01234567...

还有其他定义配对函数的方法。例如,Pigeon(2001,第 115 页)提出了一个基于位交织的配对函数。这个“按位”配对函数,如上所示,定义为

 <i,j>_P={_|_   if i=j=0; <|_i/2_|,|_j/2_|>_(SP):i_0:j_0   otherwise,
(12)

其中 i_0 (和 j_0)是 i (或 j)的最低有效位,: 是连接运算符,符号 _|_ 是空位字符串

要配对两个以上的数字,可以使用配对的配对。例如,<i,j,k> 可以定义为 <i,<j,k>><<i,j>,k>,但 <i,j,k,l> 应定义为 <<i,j>,<k,l>>,以最小化由此产生的数字的大小。一般的方案是

<a,b,c>=<a,<b,c>>
(13)
<a,b,c,d>=<<a,b>,<c,d>>
(14)
<a,b,c,d,e>=<<a,b>,<c,<d,e>>>
(15)
<a,b,c,d,e,f>=<<a,b>,<<c,d>,<e,f>>>
(16)
<a,b,c,d,e,f,g>=<<a,<b,c>>,<<d,e>,<f,g>>>,
(17)

等等。


另请参阅

折叠函数

此条目由 Steven Pigeon 贡献

使用 Wolfram|Alpha 探索

参考文献

Hopcroft, J. E. 和 Ullman, J. D. 自动机理论、语言和计算导论。 Reading, MA: Addison Wesley, 1979.Pigeon, P. 数据压缩贡献。 博士论文。蒙特利尔,蒙特利尔大学,2001。Stein, S. K. 数学:人造宇宙。 New York: McGraw-Hill, 1999.

在 Wolfram|Alpha 中引用

配对函数

如此引用

Pigeon, Steven. “配对函数。” 来自 MathWorld——Wolfram Web 资源,由 Eric W. Weisstein 创建。 https://mathworld.net.cn/PairingFunction.html

主题分类