集合的势
(这篇文章是高中的我写的,整理这篇文章时已经大三)
首先,作者是个高中生,写的内容也是面向高中生的。如果读者没学过高中的集合、函数,可能需要自学一下
作者是学渣,证明内容会有很多不严谨的地方(因为我没有专业地学过!),只是扯扯淡罢了(也可以叫科普→_→)
这些内容应该足够简单了吧,数学不太差的高中生应该都能看懂。另外我没用 TeX 公式(我够懒了)请见谅
献给给同样喜欢数学的人
# 1. 一些概念
高中学的集合……其实 P 都没讲。所以我准备讲一下集合的基本操作
在听我扯淡前必须要清楚这么几个定义,我这里很粗略地写一下,如果不清楚的可以自行查阅资料
- 集合:两个条件 1. 所有满足条件的元素都在集合里 2. 集合里的所有元素都满足条件(当然这是朴素集合论的定义)。
- 映射 f:A→B,要求集合 A 里的任一元素都有集合 B 中的一个元素与之对应(若 x∈A,则 f(x)∈B)
- 单射 f:A→B,要求首先是映射,其次不存在 A 的两个元素映射到B的一个元素(任意 x,y∈A,有 f(x)≠f(y))
- 满射 f:A→B,要求首先是映射,其次 A 的元素映射完了 B 的所有元素(任意 z∈B,存在 x∈A,有 f(x)=z)
- 双射 f:A→B,要求又是单射又是满射(双射又叫一一映射)
# 2. 朴素集合论
当时几乎整个数学都建立在朴素集合论上,但是这么简单的定义一看就不靠谱。果然某年罗素说了一句话:
令 A={x|x不属于x},问 A∈A 的真假?
我随便解释一下:
- 假设A不属于A,那么显然满足“x不属于x”的条件,A应该属于A的
- 但如果A属于A了,那么集合内的元素应该得满足“x不属于x”的条件,A又被A排斥出去了
回归正题,罗素悖论彻底把数学大厦撼动了,引发了第三次数学危机,至今没完全化解。现在做的较好的是ZF公理系统配合选择公理(这两个合在一起叫 ZFC 公理系统)
# 3. 选择公理
选择公理:最后一条公理总是饱受争议的(大概吧)
选择公理的内容是:
设C为一个由非空集合所组成的集合。那么,我们可以从每一个在C中的集合中,都选择一个元素和其所在的集合组成有序二元组来组成一个新的集合
这么说吧,假设你的显示屏可以设置亮度、对比色等等内容。那么这个设置集合是:{亮度集合,对比色集合,…},亮度集合是:{亮度0,亮度0.1,…},对比色集合也类似。现在轮到你设置了,你设置亮度为50,对比色为50,那么这个选择集合变成了:{(亮度集合,亮度50),(对比色集合,对比色50),…}。我们在各个集合中拿取元素的事情天天发生,很难想象这是错误的
不过,一些数学家主张废除它,因为由它可以推出一系列匪夷所思的结论
比如巴拿赫-塔斯基分球定理:将一个球分成几个部分,经过旋转和平移后,变成两个和原来相同的完整的球
这些乱七八糟的东西只是违反常识而已,并不能造成数学的矛盾,数学危机更谈不上了
# 4. 势
集合大小的评判依据:势(A的势记作card A)
我们都知道有限集合之间比大小,太容易了
比如 A={1,2} B={1,2,3}
card A=2
card B=3
3 > 2,于是B比A大
但是无限集合怎么比?全部都不能比吗?
其实可以,用的方法是——
满射!(或单射)
假设A营的每个士兵都只打出一发子弹,就干掉了B营的所有士兵
这说明什么?
说明A营人多啊!
但又不能排除A营人与B营人一样多的情况
所以:★A满射B等价于card A≥card B
同样:★B单射A等价于card A≥card B
那么双射是什么情况?
card A又不比card B小,又不比card B大
就只能card A=card B了
★A双射B等价于card A=card B
# 5. 阿列夫数
数学上用阿列夫数来表示无限集合的势(阿列夫是一个符号,我打不出来所以请网上查一下吧……是一个看起来像N的符号)
把这些势从小到大依次排好:
- 阿列夫0是自然数集的势
- 阿列夫1是实数集的势
- 阿列夫2是所有曲线组成的集合的势
- ……
估计会有人问阿列夫3、阿列夫4是什么,用一下康托尔定理就可以回答:阿列夫3是所有曲线组成的集合的子集组成的集合的势,阿列夫4是blablabla的子集组成的集合的势(康托尔定理在后面会讲到)
我接下来讲的东西,是读者看到这里可能产生的疑问,其中有:
- 自然数集是最小的无限集吗?
- 阿列夫0和阿列夫1之间没东西了吗?
- 为什么自然数集的势小于实数集的势?
- 以及康托尔定理
- 以及一些常见的集合的双射方法
# 6. 无穷大
读者可能有这么一个问题:无穷大和阿列夫数有什么关系?两个好像都很大
甚至会认为,阿列夫0是无穷大,阿列夫1是更加大的无穷大,……
其实,这两个概念没什么交集,无穷大为了描述一个要多大有多大的数,而阿列夫数描述的是无限集的势,而且阿列夫数是集合间相互比较(厮杀)产生的
无穷大是怎么样的一个概念呢?比如a=1,2,3,4,5,…,a永远不会趋近于某个值,而且可以到达距离原点极远的地方(要多远有多远,你说的任意一个数都可以超越),这就是无穷大
代表无穷大的a,是可以参与一切数字运算的,比如a/a=1(如果b=2a,显然b也是无穷大,那么b/a=2),那么你说阿列夫1/阿列夫0是多少?
在我看来,无穷大描述的是“大”,而阿列夫数描述的是“多”,就是描述集合里元素的多少
再强调一遍,无穷大和阿列夫数没关系
# 7. 正偶数集和正整数集的双射
显然把正偶数除以2就可以了
(2,4,6,8,10,…)除以2变成(1,2,3,4,5,…)
引用自百度百科:希尔伯特旅馆
希尔伯特在谈到“无限大数”的奇怪而美妙的性质时说到:
我们设想有一家旅馆,内设有限个房间,而所有的房间都已客满。这时来了一位新客,想订个房间,“对不起”,旅馆主人说,“所有的房间都住满了。”
现在再设想另一家旅馆,内设无限个房间,各个房间也都住满了客人。这时也有一位新客,想订个房间。“不成问题!”旅馆主人说。接着他就把1号房间的旅客移到2号房间,2号房间的旅客移到3号房间,依次类推。这样一来,新客就被安排住进了已被腾空的1号房间。
这时又来了无穷多位要求订房间的客人。“好的,先生们,请等一会儿。”旅馆主人说。于是他把1号房间的旅客移到2号房间,2号房间的旅客移到4号房间,3号房间的旅客移到6号房间,依次类推。现在,所有的奇数号房间都腾出来了,新来的无穷多位客人可以住进去,问题解决了!
这样,我们可以让自然数集、整数集、正偶数集甚至质数集等等,随便双射
# 8. “正偶数和正整数一样多”
但是我们最好别说“正偶数和正整数一样多”这样的话(我在某些地方看到过这样的话)
我只是想说,这不太严谨,说“正偶数集的势与正整数集的势一样大”就好多了吧(个人见解)
事实上,对于正偶数和正整数哪个多的问题,换一个角度会有完全不同的答案
如果只考虑闭区间[0,n]里的数,会发现:
- n=1,正偶数0个,正整数1个
- n=2,正偶数1个,正整数2个
- n=3,正偶数1个,正整数3个
- ……
- n=11,正偶数5个,正整数11个
- n=101,正偶数50个,正整数101个
- n=1001,正偶数500个,正整数1001个
在我们计算正偶数个数除以正整数个数时,会发现:
当n趋向于正无穷大时,这个数值趋向于1/2
(这就有问题了,不是说好了正偶数、正整数一样多了吗?)
这就是我认为“xx一样多”是不严谨的的原因
(在写完上述内容之后,我听说了一个名词叫“渐近密度”,可能跟我的分析类似吧)
# 9. 整数集和有理数集的双射
注:Z是整数集,Q是有理数集
首先Q能满射Z(这不废话)
然后我描述一个Z满射Q的方法
举个例子,n=51524703
我把从右往左数是奇数位的数拼起来:(顺序不变)
1273
把偶数位拼起来:
5540
分别赋值给x,y
(特殊情况:y=0时,就把y改成1或者其他非零整数,因为分母不能为0)
那么x/y=1273/5540就是我要的有理数
这样Z就能满射Q了
类似的想要让Z双射三元整数组{(a,b,c)|a,b,c∈Z}什么的都没问题
# 10. 区间(-1,1)和实数集的双射
用一下正切函数就可以了
f:区间(-1,1)→实数集 f(x)=tan(πx)
另外,通过平移、拉伸等操作,可以让区间任意变形(例f:(0,1)→(-1,1) f(x)=2x-1)
另外,实数集只考虑正整数部分的移动,就能将势小于等于阿列夫0的集合装下(希尔伯特旅馆嘛)
# 11. 直线上的点集与平面上的点集的双射
首先,平面点集满射直线点集(废话)
那么我要找出直线点集满射平面点集的方法
直线点集双射于{m|m∈[0,1)}
平面点集双射于{(x,y)|x,y∈[0,1)}
现在又要用进制法了……
举个例子
m=0.3257624891…
我把奇数位上的数拼成:
0.35649…
偶数位上的数拼成:
0.27281…
分别赋值给x,y
最终的坐标是(0.35649…,0.27281…)
完璧!
(类似的,三维空间的点集,甚至包括三角形、球、莫比乌斯环上的点集,它们之间都可以双射)
# 12. “A4 纸面上的点与太平洋面上的点一样多”
另外有人因此说:“A4 纸面上的点与太平洋面上的点一样多”
这说法……还是不严谨。不过,听还是听得懂的
但如果有人说:A4 纸和太平洋面一样大
那我就会拿起小学数学课本拍死他/她
这就涉及到测度了(测度在最后讲)
# 13. 最小的无限集
自然数集是最小的无限集吗?
注:A\B表示在A中挖掉B,即B在A中的补集
若M是一个无限集,则M非空,可以找到a1∈M
M\{a1}显然是无限集,可以找到a2∈M\{a1}
M\{a1,a2}显然也是无限集,可以找到a3∈M\{a1,a2}
……
M的一个子集{a1,a2,…}与自然数集双射,于是M必然能满射自然数集
所以自然数集是最小的无限集
# 14. 连续统假设
阿列夫0和阿列夫1之间没东西了吗?
康托尔猜测:没东西了吧……
这个猜测被称作为连续统假设
(又不是定理、猜想,也不是悖论、佯谬,居然是假设?)
数学家已经证明了:连续统假设和ZFC公理系统是彼此独立的
也就是说连续统假设既不能证实也不能证伪(牛逼啊,这怎么做到的?)
# 15. 康托尔对角法
为什么自然数集的势小于实数集的势?
注:R是实数集,N是自然数集,N+是正整数集
R当然能满射N了,因此card R≥card N
假设N满射R,那么N+也能满射区间[0,1)(因为N双射N+,R双射[0,1))
该映射为f:N+→[0,1)
那么说明f(1),f(2),f(3),…能遍历[0,1)里的所有数
举个例子吧,如果f(n)依次是:
- f(1)=0. 3 2 5 8 6 …
- f(2)=0. 7 1 4 5 4 …
- f(3)=0. 5 0 4 9 1 …
- f(4)=0. 6 2 2 4 9 …
- ……
接下来我要构造一个[0,1)里的数C使它不等于任何一个f(n)
那么看这一条打中括号的数字
- f(1)=0.[3]2 5 8 6 …
- f(2)=0. 7[1]4 5 4 …
- f(3)=0. 5 0[4]9 1 …
- f(4)=0. 6 2 2[4]9 …
- ……
让C的第一位小数不等于3
第二位小数不等于1
第三位小数不等于4 ……
为什么C能做到这么屌呢?原因就是:实数的位数的集合的势跟正整数集的势相同
(注:{第一位,第二位,第三位,…}双射{1,2,3,…})
对任意一个f(n),我找到C的第n位与f(n)比较,显然不同
那么f(n)就是与C不相同的
假设不成立,即N+不满射[0,1)
# 16. 康托尔定理
现在,我打算把康托尔定理的证明写出来。这是我见过的最神奇的证明!
康托尔定理:P(A)是集合A子集的集合,则card A < card P(A)
注:P(A)={x|x包含于A},比如A={1,2},则P(A)={空集,{1},{2},{1,2}}
证明如下(理解需要一些时间)
首先P(A)满射A(废话),于是card A≤card P(A)
那么假设A双射P(A),该双射为f:A→P(A)
考虑集合S={x∈A|x不属于f(T)}是P(A)的元素
由于双射可逆(就是存在逆映射),所以存在t使f(t)=S
我们来理下思路:
- S是由A元素组成的
- 所以S是A的子集,是P(A)的元素
- t是S的逆映射,即P(A)的元素的逆映射
- 所以t是A的元素
那么问:t∈S吗?
若t∈S,则S的元素符合条件x不属于f(x)
也就是t不属于f(t)=S,矛盾
若t不属于S,则t不满足S的条件x不属于f(x)
也就得到t∈f(t)=S,又矛盾
(这和罗素悖论很像)
产生矛盾后,我们认为假设不成立
即A不双射P(A)
# 17. 实数集的幂集与函数集的双射
(注明一下,我这篇文章当然很多是把网上内容改编成较通俗的话,也有自己创作的。这个就是,所以可能不太……好。不喜欢就跳过吧)
R为实数集。我这里的函数集里的函数要求定义域为R。R的幂集即R的子集的集合
①R的幂集双射这样的一个函数集:{f|f:R→{0,1}}
因为R的幂集的一个元素a,有些实数在a里,有些实数不在a里
{f|f:R→{0,1}}的一个元素b,有些实数通过b映射1,有些实数通过b映射0
这样就对上了
②取无数个相邻相距1的实数(比如… -0.5 0.5 1.5 2.5 …)这些实数通过b映射了无数个1或0,按次序排列(比如10010110101…),看成一个二进制小数(比如0.10010110101…)这样就被改造成一个[0,1)里的数了
③令x∈[0,1),则包含x的无数个相邻相距1的实数(即… x-1 x x+1 x+2 …),这些实数通过b改造成[0,1)的数y,那么在坐标系上画出(x,y)这个点。让x在[0,1)里移动,那么显然b里的所有信息会被我游览完,且画出了一段函数图,这个函数是f:[0,1)→[0,1)
④把函数定义域和值域都变换成R(怎么变换我不说了)。那么我们能做到把R的幂集的一个元素唯一对应了函数集{f|f:R→R}的一个元素。这符合双射的定义
(需要注意的一点是,第2步的进制法是有问题的,因为比如0.011111…和0.100000…是相等的,当然这些数都是有理数,所以可以用希尔伯特旅馆来调整。我在“直线点集与平面点集”里也用了进制法,但是那边说明的是满射,没什么问题。要严谨一些,就会产生很多麻烦)
# 18. 结尾:与集合大小有关的另一个理论——测度论
我们可以这么说:2cm线段比1cm线段长
可是单单从集合的势角度看,这两者好像是一样的
(于是你坚持说这两个线段等长,被我用小学数学课本拍死)
★测度:就是长度或面积或体积或……
比如半径为1的圆盘的二维测度为π
(以下出现的测度都是一维测度)
勒贝格测度:(我也只会这个)
★定义区间(a,b)的测度为b-a
如果用一些区间覆盖了整个集合(全部不透光),集合测度就比区间测度之和小(或相等)
如果用区间被集合盖住(这里要求区间不重叠),集合测度就比区间测度之和大(或相等)
举个实战的例子:所有势小于等于阿列夫0的集合测度为0(当然集合里的元素都得是实数)
因为这个集合的元素可以被排列成:
a1,a2,a3,a4,…
我用测度为s/2的区间覆盖a1(开区间(a1-s/4,a1+s/4))
用测度为s/4的区间覆盖a2(开区间(a1-s/8,a1+s/8))
……
用测度为s/2^k的区间覆盖ak
这当然是盖得住的
所以集合测度≤区间测度=s(1/2+1/4+1/8+…)=s
现在需要一些极限的思想了
让s趋向于0(s再怎么小,只要s是正数,区间也都是盖得住的)
于是,集合的测度不得不为0了
有理数集嘛,阿列夫0咯,所以有理数集的测度就是0了
(有理数不是在数轴上无限稠密的吗?悲惨的有理数)
当然不一定要阿列夫0才能测度为0,阿列夫1的也可以,康托尔集就是一个例子
康托尔集是这样的:
一条长度为1的线段,把它砍成三段(三段等长),去掉中间一段,剩下两段也这么做(即砍成三段,去掉中间一段),直至无穷
---------------------------
--------- ---------
--- --- --- ---
- - - - - - - -
(我这字符画是不是很形象?)
那么它有这么两个特征:与实数集双射、测度为0
①与实数双射。因为每一个元素中,每一次切割都要么在左边,要么在右边,所以这个元素可以记作:左右右左右左右右左…(无穷序列)
看作是二进制小数,就变成[0,1)里的实数了
②它的测度为0。我们算一下它对原来的线段的补集的测度q,算完后1-q就是康托尔集的测度了
q=1/3+2(1/3)^2+4(1/3)^3+8(1/3)^4+…
=1/2*(2/3)+1/2*(2/3)^2+1/2*(2/3)^3+…
=1
因此康托尔集的测度1-q=0
完结,因为我扯不下去了。