作者:蒋迅
本文发表在《中国工业与应用数学学会通讯》2019年第2期。
我的一位发小和我一样有保存老物件的习惯,他知道我的这个爱好,专门托人从北京带来了一把老式的尺子,非常漂亮。这把尺子就在我的起居室的茶几上。每次看到它就觉得应该写点什么。今天我们就来说说尺子里的数学。具体地说,我们要讲的是一种叫哥隆尺的数学概念,同时看看它有什么实际的应用。
1. 什么是哥隆尺
先说哥隆尺。哥隆尺真的是一把尺子。通常的尺子的标点之间的距离是均匀的。一把12英寸的尺子上有13个标点。这样的尺子可以度量介于1和12英寸之间的所有整数长度。
图1.一把普通的刻度尺
但是这样的尺子从数学上不是最有效的,因为对於单位长度1来说,我们有多种度量方法。事实上对上面的例子来说,有12种重复的方法。对於长度2、3、4等都有多种重复的度量方法。
图2.普通刻度尺有多种度量方法
那么有没有更为有效的尺子?具体地说,有没有一种尺子,它对每一个(整数)长度来说,都只有一个方法呢?由此引出了哥隆尺问题。
先来看哥隆尺的定义。一个整数集合
A = { a1, a2, ..., am}, a1 < a2 < ... < am
是一个哥隆尺,当且仅当
对一切 i, j, k, l ∈ {1, 2, ..., m}, ai − aj = ak − al ⇔ i = k 且 j = l.
一个哥隆尺上的点数 m 称为它的阶。它上面的最长距离 am − a1 就是它的长度。哥隆尺的正则形式是 a1 = 0,并且当 m > 2 时,有 a2 − a1 < am − am-1。这种形式可以通过平移和反射变换得到。
哥隆尺也可以看作是一个内射函数。一个满足 f(1) = 0和f(m) = n 的内射函数
f: {1, 2, ..., m} → {0, 1, ..., n}
是一个哥隆尺,当且仅当
对一切i, j, k, l ∈ {1, 2, ..., m}, f(i) − f(j) = f(k) − f(l) ⇔ i = k 且 j = l.
下面是一个哥隆尺的例子。这个尺子可以度量1到6个单位,并且每一个单位都只能用一种方法来度量。按定义,它是一个阶为4,长度为6的哥隆尺。
图3. 一把哥隆尺
这个哥隆尺用数列表示就是 {0,1,4,6}。这四个数字就是刻度点的位置。我们也可以换两种表示。一种是7位0和1的数列:{1, 1, 0, 0, 1, 0, 1},也就是在有刻度点的地方用1,其他地方用0的数列。我们在后面将用这种二进制表示来描述哥隆尺的应用。还有一种表示是图表示:图的顶点是那些刻度点,任何两点之间用它们之间的距离表示。这两种表示法都在下图中。
图4. 哥隆尺的二进制表示和图表示
再来看一个4阶的哥隆尺。这个尺子的长度是11。
图5. 一把四阶哥隆尺
2. 美国数学家所罗门·格伦布
图6. 所罗门·格伦布(Solomon Wolf Golomb)
哥隆尺是以美国数学家所罗门·格伦布命名的。按说它应该被译为格伦布尺。估计哥隆尺这个名字早于他本人的名字被引入中国。其实哥隆尺不是格伦布最早提出的。这个思想是由希顿(S. Siden)于1939年提出,并由巴布科克(W. C. Babcock)在1953年重新提出。格伦布用21个月从约翰霍普金斯大学获得了学士学位。当时他还没有到19岁。在1957年以论文“问题的素数的分布”获得了哈佛大学的硕士学位和博士学位。毕业后他到火箭喷气实验室工作。1963年加入南加州大学直到退休。他主要的研究范畴有通讯理论、编码理论、组合数学、数学游戏及数论等。他的涉猎之广实为惊人,他在涉猎的项目中模糊了“纯粹”和“应用”数学之间的区别。他命名了“多格骨牌”游戏,但他不局限自己于游戏中,而是利用这些离散的物件来帮助自己铺平了我们今天的数码世界。他开发的移位寄存器序列被广泛的运用于军事、工业和消费应用的识别。今天,数以百万计无线和移动电话的使用与移位寄存器序列来实现伪随机码直接序列扩频。他开发的格伦布编码是一种无失真资料压缩方法,在格伦布编码生成方法下,是以一个科斯塔斯阵列为中心的主要生成技术。科斯塔斯阵列可以看作是哥隆尺在二维的推广。格伦布正是在研究斯塔斯阵列的时候引起了人们对哥隆尺的注意。我们将在另一篇文章里介绍科斯塔斯阵列。与此相关的就是哥隆尺,它在射电天文学和加密学中得到应用,并由於格伦布的贡献而得名。
3. 完美哥隆尺
哥隆尺没有要求能度量在它长度之内的所有单位。但如果它能做到这一点的话,那么就称为完美哥隆尺。上面的4阶