您的位置:首页 > 理论基础 > 数据结构算法

超越图灵机(二)——神秘的不可数无穷大

2006-05-31 10:50 411 查看
超越图灵机(二)——神秘的不可数无穷大

不可数无穷大是非常神秘的。

(一)太极无穷大理论简介:

只有两无穷大,
1.自然数数:可数无穷大(∞0),
2.实数数:不可数无穷大(∞1),
∞1是终极的大。

在∞0与∞1间分布着无数的数,这些数是虚数,超虚数,超超虚数,超超超虚数……这些“虚无缥缈”其实就是对应n维空间的那些数。
以后我们把∞0叫做太阳无穷,∞1叫做太阴无穷(月亮无穷)。
生命、思维、智能、精神与月亮无穷有直接的关系。

整数用0,1就可以做到完备了,而无穷大是仅有两个:太阳无穷,月亮无穷。
月亮无穷是宇宙终极。

大家知道实数数与n维空间点数是相同的,有一一对应,所以把n维空间的所有点都装进实轴是可行的。

我很早就感觉到i是在实轴上的,现在可以看到i是在∞0与∞1之间。
实数中的很多数(如超越数π,e,欧拉常数等)都是按名来定位的,画不出其在数轴上的具体位置,只能大体知道一个范围。“只在此山中,云深不知处”,但是是确实存在的,虚数在数轴上的位置也是这样,而且恐怕是连个有限范围也给不出了,分布在在∞0与∞1之间。

可以这样直观的看到虚数是在数轴上的。
解方程x*x-x+1=0;
x1=(1+sqrt(3)i)/2;x2=(1-sqrt(3)i)/2;取x1.
而x=x^2+1连续代换自身:
x=((...+1)^2+1)^2+1

一些连分数的例子也是很直观的。

我们可以定义广义的实数,包括n维数。

我又证明了实数的这个性质:实数没有与它相邻的数,(实数不可遍历,不可数,没有下一个实数的概念,任两个实数间都有不可数无穷多个数)。
设与实数n相邻的数为n0,那么|n-n0|应该是比任意指定的数都小,于是根据极限定义,n0=n,实数就想黑洞一样,把它周围的一切都吸进来。每两个实数都相距无限远(任两个实数间都有不可数无穷多个数),也许宇宙密度最大的物体是“数”——是的,或许数确实是一种实体物质。(要注意实数没有下一个实数的概念其实与人的思维记忆不可遍历性是直接相关的)

在∞0与∞1间分布着无数的数,这些数是虚数,超虚数,超超虚数,超超超虚数……这些“虚无缥缈”其实就是对应n维空间的那些数。n维数都折叠在∞0与∞1之间。

(二)一个世纪数学之谜的答案

在康托集合论中认为有无数个无穷大,康托用“集合幂集基数大于此集合基数”得到了一系列的无穷大,∞0,∞1,∞2……∞n……
∞0是所有自然数数,(自然数数=有理数数=非超越数数……)
∞1是所有实数数,(实数数=直线上的点数=线段中的点数=空间中的点数……)
∞2是什么呢?后来人们非常艰难的想到是“空间(可以是n维空间)所有曲线数”,也就是一切可能的数学函数数(包括连续函数和不连续函数)。

∞3以及更高的一百多年来一直没有找到实际对应的意义,成为世纪数学之谜。

现在我就来解决这个问题,
我先直接给出这个问题的答案然后再证明:
∞3是所有的以函数为变量的函数数,
∞4是所有的以“以函数为变量的函数”为变量的函数数,
∞5是所有的以“以‘以函数为变量的函数’为变量的函数”为变量的函数数,
……
如此递归下去。通俗一点的可以这样说:
∞3是所有的泛函数目,
∞4是所有的泛泛函数目,
∞5是所有的泛泛泛函数目,
……
∞n是所有的泛泛泛……泛函数目(共n-2个泛),
……
如此递归

其实要深刻的理解集合的幂集概念这个问题才好解决,大家从集合论中已经学到集合幂集是集合所有子集构成的集合,那么等效的一个概念是什么呢?我说:“所有子集构成的集合”其实是原集合中元素间的所有关系!明白了吧。

到这里已经足够了,
比如说∞3就是∞2的所有元素(既所有的数学函数)之间的关系数——那不就是所有的“以函数为变量的函数数”(既泛函)吗?明白为什么∞3是所有的泛函数目了吧。

∞4就是∞3的所有元素之间的关系数
∞5就是∞4的所有元素之间的关系数
……
递归下去

对了,还有简单的,
∞2是∞1的所有元素之间的关系数=>∞2是所有实数间的关系数(所有可能的关系)=>那不就是一切可能的数学函数数吗?(包括连续函数和不连续函数,可以是n元函数);
∞1是∞0的所有元素之间的关系数=>∞1是实数,(要注意实数可以映射n维空间)。

以后还要说出康托集合论以及几种非康托集合论中的错误。

(三)太极无穷大理论简介之继续

有多少个C程序?
有多少个C++程序?
有多少个程序?
……
答案都是可数无穷大个,既∞0。

我是想到了这一点:由有限个字符组成的字符串数目极限于∞0个,(当然这里字符的种类是有限的)。
大家知道2^∞0=∞1(还可以有n^∞0=∞1,n为>1的有限值),对于计算机上的程序,其字符种类是有限的,把所有的程序都看成是字符串,就可以知道答案是∞0了。

或者干脆把程序源代码都看成是01序列,这个序列的长度是有限的。

有多少个有理数呢?
大家要注意考虑有理数的定义,是无限循环小数,而循环节长度必定是有限的,那么根据“由有限个字符组成的字符串数目极限于∞0个”,循环节数目极限于∞0,整数部分也是极限于∞0,而∞0乘∞0=∞0,所以有理数是有∞0个。在数学教材中也都有这个结论。

有多少个代数数呢?
代数方程是有限长的,所以总共有∞0个代数方程——可以理解了吧。
而代数方程的根顶多有∞0个,
∞0乘∞0=∞0,所以代数数是有∞0个。在数学教材中也都有这个结论。
非代数数就是超越数了,超越数有∞1-∞0=∞1个,远远的超过代数数数目。
但是超越数目前人类认识的还是很有限的,比如π、e、欧拉常数……

我们要注意到象π、e、欧拉常数……这一部分超越数都是有规律的,有各种级数展开式、连分数展开式、连根式展开式……等,那么我们现在的问题是:

有多少个有规律的数呢?
要注意这个规律是任意的,只要有规律就行。能想到答案吗?答案是∞0。
因为规律可以用有限长的字符串来描述,而字符元种类是有限的,或者说是只有两个,因为可以编码成01序列。
说白了就是:可以用有限长的字符串来描述的数是有∞0个。
那么无规律的数有多少呢?有∞1-∞0=∞1个,远远的超过有规律的数。

当年开始学高等数学时,看到π的级数展开式,多么美妙啊!我想一切数都可以这样找出规律了,后来才发现——远远不行哪!

有多少个人能描述出的数呢?
∞0个,因为描述必须用有限长的字串。

有多少个人能认识的数呢?
∞0个,因为人能认识的必须是有限长的字串。

现在虽然我还写不出一个“人不能认识的数”,但是我知道,那样的数比人能认识的数多的多,是∞1个,呵呵,无论人认识了多少数。

哥德尔不完备性定理指出了逻辑系统的能力极限,现在提出这样的问题:
逻辑系统能解决的问题总共有多少?∞0
不能解决的呢?∞1个
仍然是因为字符串长度有限,从这个角度可以很容易的理解哥德尔不完备性定理。
哥德尔不完备性就是起源于∞0本身的限制。而且可以看到,不能解决的问题占决大多数。

下面想想人总共能认识多少宇宙规律?
∞0个吗?因为必须能写成有限长字符串的规律才能被认识……(除非……也许……?)

天哪,天哪,竟然有∞1个规律是人认识不了的(除非……也许……?),但是在这能认识的∞0个规律中,竟然还偏偏包含了这几句话,那么会不会还有别的什么突破口?

对了,总共有多少个宇宙规律呢?
自己想吧……

今天写的这些我自己想到时都感到害怕了。读者看到这里有害怕的感觉吗?怎么竟然可以想出来这样的问题呀。

现在再想想这样的:
证明有至少∞0个问题仅能用反证法解决。
再来一个:
证明用有限个字符提出的问题,答案不一定是能用有限长字符串能解决的。(有换成无亦然)
还有:
任何提出的问题都能解决,但是答案可能是无限长,有时反证法是唯一的办法。
还有:
“任意数r(比如π,e)在m进制下的第n位是什么”这个问题的答案是不是超出人能认识的范畴的?想想如果能认识到那么意味着什么?

(四)乘方与幂集

我刚才已经说了,幂集(所有子集构成的集合)其实是原集合中元素间的所有关系。比如说实数的幂集就是所有的数学函数。
我们可以再得到一个等效的幂集概念:幂集是控制原集合变换的所有规律。
而最终的一个集合必须做到这一点:控制本集合进行变换的所有规律都是此集合的元素,都在此集合中。
这个集合的名字叫“宇宙”,是“包括一切集合与元素的集合”。

幂集是原集合的“意识”,0^0=1,乘方运算的本质也是“意识”。
幂集与乘方都会使“输入”发生升华。

太极无穷大理论中有这样的一个式子:
基数 C≦P(C),C是集合,P是取幂集。等号是当且仅当此集合为不可数集合时成立。
所以无穷大仅有两个,∞0和∞1,

这个式子与现代数学集合论的区别是在等号上,在现代数学集合论中是C<P(C)。

现代数学集合论有一个非常大的误导是削足适履的来避免种种悖论。
比如公理化集合论ZFC系统为了避免康托集合论中U<P(U)的悖论,竟然僵硬的定义“包括一切集合的集合”不存在,这等于霸道的睁着眼睛说宇宙不存在——你能相信吗?反正我不相信。而且NBG系统就保留了“一切集合的集合”。

我先把康托证明C<P(C)的过程复制如下,再分析里边的错误:
下面的是从网上复制了一个科普式版本的,大家可以翻开一本集合论教材,那里边就有证明。
---------------------------------
  定义: 设有集合A,A的所有子集的集合称为A的幂集,
  记作P[A]。 
  这个定义看来非常简单。例如,如果A={a,b,c},那么,A有
  8个子集,因而,A的幂集就是包含这8个子集的集合,即:
  P[A]={{},{a},{b},{c},{a,b},{a,c},{b,c},{a,b,c}}
  请读者注意,空集{}和集合A本身是A的幂集的两个元素;无论我们采用什么样的集合A,这都是正确的。我们还应注意,幂集本身也是一个集合。这一基本事实有时容易被忽视,但在康托的思想中,这个事实却有着重要意义。
  显然,在我们上述例子中,幂集的基数大于集合本身的基数。也就是说,集合A包含3个元素,而它的幂集则包含23=8个元素。我们不难证明,一个包含4个元素的集合有24=16个子集;一个包含5个元素的集合有25=32个子集;总之,一个包含n个元素的集合A有2n个子集。

  但是,如果A是一个无穷集,又将如何?无穷集的幂集其基数是否同样大于集合本身的基数呢?康托定理回答了这一引起争论的问题:
证明 为证明这一定理,我们必须依据本章前面所介绍的康托关于超限基数之间严格不等式的定义。显然,我们可以很容易地发现在A与部分P[A]之间存在着的一一对应关系,因为如果A={a,b,c,d,e,……},我们就可以使元素a对应于子集{a},使元素b对应于子集{b},等等。当然,这些子集{a},{b},{c}……仅仅是A的全部子集中微不足
  到此为止,一切都很简单。但还有必要证明A与P[A]没有相同的基数。我们采用间接证明的方法,首先假定它们的基数相同,然后从中导出逻辑矛盾。即,我们假设在A的全部与P[A]的全部之间存在着一一对应关系。为便于论证,我们将采用一个与这一假定一致的例子,以备后面参照:
  于是,这个排列表示在A的全部元素与P[A]的全部元素之间存在着假定的一一对应关系。请注意,在这种对应关系中,A的某些元素属于它们所对应的子集;例如,c是与之相对应的集合{a,b,c,d}的元素。而另一方面,A的某些元素则不属于它们所对应的子集;例如,a就不是其对应子集{b,c}的元素。
  令人不可思议的是,这种将互不相容的东西一分为二的做法提供了导致本证明逻辑矛盾的线索,因为我们现在可以对集合B作出如下定义:
  B是原集合A中每一个不属于它所对应的子集的元素的集合。
  参照上述假设的对应关系,我们看到,a以及b(因为b不是{d}的元素)、d(d当然不属于空集)和 g(不是{h,I,j,……}的元素)都属于集合B。但是,c、e和f就不是集合B的元素,因为它们分别属于{a,b,c,d}、A本身和{a,c,f,g……}。
  因此,集合B={a,b,d,g,……}。这样构造的B是原集合A的子集。所以B属于A的幂集,因而必然会出现在上述对应关系右边一列的某个位置。但是,按最初假定的一一对应关系,我们同样断定在左边一列一定有A的某一元素y对应于B:
  到目前为止,一切顺利。但是现在我们提出一个致命的问题:“y是B的元素吗?”当然,有两种可能:
第一种情况 假设y不是B的元素。
  那么根据我们最初对B所下的定义,“……原集合A中每一个不属于它所对应的子集的元素的集合”,我们看到,y理所当然是B的成员,因为在这种情况下,y不是它所对应的集合的元素。
  换句话说,如果我们首先假定y不属于B,那么,我们就被迫得出结论,y应当是B的元素。显然这是自相矛盾的,所以我们排除第一种情况,因为这是不可能的。
第二种情况 假设y是B的元素。
  我们再次求助于B的定义。因为第二种情况假定y属于B,那么,y应当符合B的定义;即y不是它所对应的集合的元素。太遗憾了!与y对应的集合恰恰是B,因此,y不可能是集合B的元素。
  这样,由于第二种情况假定y属于B,我们不得不直接得出结论,y不是B的元素。作为逻辑结构,我们再次走进了死胡同。
  一定是什么地方出了毛病。第一种情况与第二种情况是仅有的两种可能,但这两种可能都导致了逻辑矛盾。我们断定,在论证中的某个地方一定有一个假设是错误的。当然,问题正是开始时我们所假定的在A与P[A]之间存在着一一对应关系。我们的悖论显然摧毁了这一假设:不可能存在这种对应关系。
----------------------------------------------

这个证明是有两个非常隐蔽的错误:
1.在这个过程中默认了集合A为可数集合,(可逐个写出元素的集合一定是可数的)。
2.基于集合论的推理是很不牢靠的,罗素悖论等不是那么好解决的。

我一开始时曾想证明“对不可数集合不可以取幂集”,不过后来发现“不可数集合幂集仍然是自身”。
所以无穷大仅有两个,∞0和∞1,
这意味着什么呢?加减乘除等运算都是实数!——我早就在猜想这些东西都是数,sin,cos,lim,∏,∑,∫……都是数,不仅在编码意义上是数,而是真正意义的数,而且可以在实轴上按名索引!

实数的规律都映射到实数中,所以实数是有“自控能力”的,又象生命了——意识能够意识到自己。

想想刚才的“幂集是控制原集合变换的所有规律”,其实还可以说成“幂集是定义在原集合上的所有运算与输入输出”。

下面我们仍然从字符串长度角度来证明不可数集合幂集仍然是自身。
每个实数都可以表示成01序列,长度是∞0,所以实数共有2^∞0=∞1个,
每个函数都可以编码表示成01序列,长度是∞0,所以函数共有2^∞0=∞1个——而刚才函数是∞2个,所以∞1=∞2。
泛函泛泛函泛泛泛函……皆然,所以:
∞1=∞2=∞3=∞4=∞5=………

 

我甚至发现可能设计集合概念的本身就是不合理的,特别到了无限的状态下,必须把集合与元素的概念统一起来,(这也许是解决罗素悖论的唯一途径——不去区分集合与元素)。我设计太极语言时就是采用的这个思想,函数、类与变量都用同一个数据结构来描述,这样变量具有类的一切特性,比如可以对类重载也可以对具体的某一个变量重载。设计思想是“集合就是元素,元素就是集合”。

要注意的是:集合可数性与可排序性是两个概念。
实数不可数,但是可排序。就是按其组成数字序列来排序。
比如泛函分析一上来就讲了一个“良序定理”,说“每个集合都能赋予一个先后次序并且使之成为良序集”,可见每个不可数集合都类似实数可以编码成字符序列来排序,那么从这里也可以得到∞1=∞2=∞3=∞4=∞5=………。

(未完待续)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c 数据结构 c++ 语言 up