我一直很喜欢有各种惊异性质的奇怪函数,比如阶梯状的连续函数、只在一点连续的函数、任意小的区间所对应的值域都是整个实数域的函数等等。在这里面,最令人吃惊的是恐怕要数在平面上处处稠密的单值函数(其实前面那个函数显然也有这样的性质)。这样的函数打破了一维和二维之间的界线,启发人们重新思考稠密性的意义。不过,有人提到,这两个函数之所以在平面上稠密,是因为它们在平行于x轴的直线上都是稠密的。我们自然开始设想,有不有可能在平面上找到这样一个点集,它在平面上处处稠密,但在任意一条平行于坐标轴的直线上都无处稠密呢?
这是可以办到的。为了简便起见,我们只考虑平面区域[0,1]×[0,1]上的点集。让我们考虑由所有满足以下条件的点(x,y)所组成的点集:x和y都是有限小数,并且小数位数是相同的。例如,点(0.0516, 0.1025)就属于这个点集,但(0.23, 0.1001)就不属于这个点集,(1/3, π/6)就更不属于该点集了。显然,对于任何一个有限小数x’,直线x=x’上都只有有限多个点;类似地,对于任意一个有限小数y’,直线y=y’上都只有有限多个点。因此,该点集在所有平行于坐标轴的直线上都无处稠密。有趣的是,该点集在整个平面区域内却处处稠密。在任意小的区间x’-ε≤x≤x’+ε,y’-ε≤y≤y’+ε中,总存在一对小数位数相同的x和y。我们只需要写出一个比ε更小的有限小数λ,然后取(x’+λ, y’+λ)(只保留和λ相同的位数),则该点必然在前面所说的范围内。
还有更牛B的。上面的构造中,直线上的点确实有限,但数量大得惊人。我们继续想象,有没有可能找出这样一个点集,在每个平行于坐标轴的直线上最多只存在一个点,但在整个平面区域上仍然处处稠密呢?这仍然是有可能的。考虑(0,1]×(0,1]上的所有有理点(x,y)(即x和y都是有理数),注意到可数个可数集仍然是可数的,因此我们可以把所有这些点排成一个序列(x1, y1), (x2, y2), ……。下面我们来构造点集S。首先把(x1, y1)放进S里面,然后把x1列为以后禁选的x坐标,把y1列为以后禁选的y坐标。然后把平面区域分成(0, 1/2]×(0, 1/2]、(0, 1/2]×(1/2, 1]、(1/2, 1]×(0, 1/2]、(1/2, 1]×(1/2, 1]四个小正方形。找出有理点序列中第一个还可以选的落在第一块正方形区域(0, 1/2]×(0, 1/2]内的点,比方说(x5, y5),把它放进点集S,并标记以后x坐标不能再选x5,y坐标不能再选y5;接下来找出有理点序列中第一个落在第二块小正方形内的还能选的点,比方说(x4, y4),然后把(x4, y4)放进点集S,并标记x4和y4以后禁选。继续找出序列中最早出现的落在第三个、第四个子正方形内的还能选的点并做类似的操作。这一步完成后,把平面区域分成4×4=16块相等的小正方形区域,并分别找出第一个落在每个小区域内、x不属于x坐标禁选列表、y不属于y坐标禁选列表的点,加进点集S并更新两个禁选列表。在第三阶段,把正方形划分为8×8=64个小正方形,并继续这样无限进行下去。这个操作的极限所得到的点集显然满足我们的条件:在平面区域内任意小的范围内均存在一点,但每条平行于坐标轴的直线上最多只有一点。