接上一篇《你知道吗?有理数可数,而实数则不可数!》,我们继续介绍一些无穷数集的性质。
在数学中,从有限集到无穷集,很多性质会发生变化。譬如两集合的大小:
• 如果集合A和B都是有限集合,而且B是A的真子集,那么B一定比A小。
• A为整数集,B为偶数集, 则B为A的真子集,但是,在集合论里,A和B一样大。
那么,除了集合的大小,还有别的例子表现出有限集和无穷集之区别吗?此文讨论有限数列和无穷数列的排序问题。
在计算机科学与数学中,一个排序算法(Sorting algorithm)是一种能将一串资料依照特定排序方式排列的算法。最常用到的排序方式是数值顺序以及字典顺序。有效的排序算法在一些算法(例如搜索算法与合并算法)中是重要的,如此这些算法才能得到正确解答。排序算法也用在处理文字资料以及产生人类可读的输出结果。基本上,排序算法的输出必须遵守下列两个原则:
• 输出结果为递增序列(递增是针对所需的排序顺序而言) 。
• 输出结果是原输入的一种排列、或是重组。
虽然排序算法是一个简单的问题,但是从计算机科学发展以来,在此问题上已经有大量的研究。举例而言,冒泡排序在1956年就已经被研究。虽然大部分人认为这是一个已经被解决的问题,有用的新算法仍在不断的被发明。
以上所述可抽象为有限数列(b_1,b_2,…,b_n)的排序问题:
• 寻找数列(1,2,…,n) 的一个重组(i1,i2,…,in ),使得(b_i1 ,b_i2,…,b_in) 为递增序列。
这个问题是否可以推广至无穷数列(b_1,b_2,…,b_n, …)的排序呢?
• 寻找数列(1,2,…,n, …) 的一个重组(i1 ,i2,…,in, …),使得 (b_i1 ,b_i2,…,b_in , …)为递增序列。
这个问题不成立,不是所有的无穷数列都可以排序的。
例子 1: 以下数列不可排序:
• (1,0.1,0.01,… ,1/10n-1, …);
• (-1,-2,…,-n,…);
• (4,5,1,2,-5,-6,… ,-n,…);
• (1,2,1,4,1,6,… ,1,n,…);
例子 2: 以下数列可排序:
•(1/2,2/3,3/4,…,n/(n+1),…)
•(3,4,5,…,n+2,…)
•(8,9,3,1,5,6,19,1,2,…,n-7,…)
那么,问题来了,究竟什么无穷数列可以排序,什么不可以呢?我有个判断猜想。
无穷数列排序判断猜想: 一个无穷数列S=(b1 ,b2,…,bn, …)可排序的充分和必要条件是S可分裂成(split) 一个有限数列的无穷序列,即S=(A1,A2,…,Ak,…),其中 Aj (j=1,2,…)是有限 数列,并且j<k ==》Aj≤Ak。
• 充分条件很容易证明。
• 必要条件待证或待举反例,希望有人填个空。
总结一下:
• 有限数列必可以排序;
• 无穷数列不一定可以排序:有些可以,有些不可以;
• 无穷数列排序判断猜想。
华盾信卫之数学篇