请问一个问题:怎么构造[0,1]到(0,1)的一一映射?

127 views
Skip to first unread message

Gestorm

unread,
Aug 27, 2008, 1:49:56 AM8/27/08
to TopLanguage
以前问过一个同学为什么[0,1]和(0,1)元素个数是相等的,他给了个证明:
如果card S表示集合S的基数,那么从x=2y可得card (0,1) == card (0,2)
然而显然有card (0,1) <= card [0,1] <= card (0,2)
从而得证。
然后我就想这个映射要怎么建立呢?一直没想出来,边上的洞洞怎么也搞不定。

鋆邓

unread,
Aug 27, 2008, 1:56:00 AM8/27/08
to pon...@googlegroups.com
除了映射以外还有一种方法可以证明无穷大的相等性,就是夹逼定理
在高数求极限的时候,有一个方法就是如果证明一个数列A从有限位置开始大于某个数列B,且小于某个数列C,并且数列B和C的极限都为N,那么可证明数列A的极限为N
比较无穷大的相等性也是,如果无穷大A大于无穷大B,且小于无穷大C,并且无穷大B和C相等,那么无穷大A和B、C都相等。
注意无穷大的大于、小于和等于可能是同时满足的,部分可能等于整体是无穷大的性质之一
 
对于这个问题,可以证明[0,1]的元素个数> (0,1)的元素个数>[0.1, 0.9]的元素个数=[0,1]的元素个数,因此得证[0,1]的元素个数等于(0,1)的元素个数

2008/8/27 Gestorm <zhcfr...@126.com>

james lee

unread,
Aug 27, 2008, 1:56:54 AM8/27/08
to pon...@googlegroups.com
这个不难,
定义映射f: [0,1] -> (0,1)如下:
f(0) = 1/2, f(1) = 1/4

f(2^(-i)) = 2^(-i-2), i >= 1
其它为 f(x) = x

2008/8/27 Gestorm <zhcfr...@126.com>

鋆邓

unread,
Aug 27, 2008, 1:59:49 AM8/27/08
to pon...@googlegroups.com
恩……楼上的映射构造的很强大,有《从一到无穷大》里那个旅馆店主的风范……崇拜……

2008/8/27 james lee <jamesl...@gmail.com>

Mingli Yuan

unread,
Aug 27, 2008, 2:09:05 AM8/27/08
to pon...@googlegroups.com
更一般化的处理,请参照下面的定理和证明:

Cantor–Bernstein–Schroeder theorem

http://en.wikipedia.org/wiki/Cantor%E2%80%93Bernstein%E2%80%93Schroeder_theorem

2008/8/27 鋆邓 <tdzl...@gmail.com>

pongba

unread,
Aug 27, 2008, 2:35:07 AM8/27/08
to pon...@googlegroups.com


2008/8/27 鋆邓 <tdzl...@gmail.com>

恩……楼上的映射构造的很强大,有《从一到无穷大》里那个旅馆店主的风范……崇拜……

同意!同拜!Orz..

--
刘未鹏(pongba)|C++的罗浮宫
http://blog.csdn.net/pongba
TopLanguage
http://groups.google.com/group/pongba

pongba

unread,
Aug 27, 2008, 2:38:45 AM8/27/08
to pon...@googlegroups.com


2008/8/27 Gestorm <zhcfr...@126.com>

以前问过一个同学为什么[0,1]和(0,1)元素个数是相等的,他给了个证明:
如果card S表示集合S的基数,那么从x=2y可得card (0,1) == card (0,2)
然而显然有card (0,1) <= card [0,1] <= card (0,2)
 
这个方法似乎有一个前提,即无穷集的基数也像有穷数一样是可以比较大小,甚至是全序的。

obtuseSword

unread,
Aug 27, 2008, 3:15:15 AM8/27/08
to TopLanguage
楼主的问题已经被大家圆满解决了,我只多嘴一下james lee的强大构造是怎么想到的:

[0,1] 和 (0,1) 只相差两个元素 { 0, 1 },但它们有相同的基数,所以现在我们想构造一个一一对应的函数。
显然这个函数不容易用1/x,sin(x),exp(x)之类的初等函数表示,所以不像构造[0,1]和[0,2]的一一对应那样明朗,
应该换个思路。

由于两个集合只相差两个元素,所以它们应该很接近,我们不妨让这个映射保持大多数的元素不动,
仅对部分元素作变动。对哪些元素作变动呢?肯定要把0和1这两个元素映射到(0,1)中,但是0和1映射后,又“抠去”了(0,1)中的两个元素,这不
好办了。 仔细想想为何[0,1]和(0,1)有相同的基数,是因为它们有无穷个元素,这在有限个元素中是不可能发生的,所以我们应该从[0,1]和
(0,1)中分别取出一个子集S1,S2,使得S1和S2能够一一对应,而[0,1]-S1和(0,1)-S2一模一样,同时在S1和S2之间建立一一
对应要比原先简单得多。 这使你想到了什么呢? 对,取S1,S2为一个可数集,这样我们就能逐个元素地确定对应关系。 不妨取 S1 =
{1,0,1/2,1/3,1/4...},取S2={1/2,1/3,1/4,...},这样,很快可以构造出一个映射来: f(0) =
1/2, f(1) = 1/3, f(1/2) = 1/4, f(1/3) = 1/5,...

总而言之,这里的构造思路是“去繁就简,降低复杂度”。实数集太繁杂了,不妨抽离出其中的可数集,使问题大大化简。
在可数集之间建立一一对应具有先天的简单性和机械性,因为一旦列出了可数集的元素,也就建立了与自然数集的一一对应,两个可数集都与自然数集一一对应
了,即 an=f(n),bn=g(n), 那么 n=g'(bn), an=f(n)=f(g'(n)) ,很容易得出 an 和 bn 的一一对
应。

ZelluX

unread,
Aug 27, 2008, 7:12:49 AM8/27/08
to TopLanguage
貌似是某年复旦自主招生的题目

denny.wang

unread,
Aug 27, 2008, 11:25:05 AM8/27/08
to pon...@googlegroups.com
我只说说我第一感觉想到的一个办法:
因为相差两个元素,我首先想到的就是把这两个集合都拆成两部分,一个可数集(含{0,1})和另外一部分。
两者的后一部分元素都相同,虽不可数,但一一对应很容易构造
前一部分两个可数集很容易构造一一映射(...),这样就完成了.
依次方法,构造的方法任你想了
 
在这里给出另外一个问题,忘了,这样的构造的映射的个数是多少?势为多少?

 
在08-8-27,ZelluX <zel...@gmail.com> 写道:



--
Best Regards!

From: Denny Wang

Gestorm

unread,
Aug 27, 2008, 9:20:34 PM8/27/08
to TopLanguage
> 我们应该从[0,1]和
> (0,1)中分别取出一个子集S1,S2,使得S1和S2能够一一对应,而[0,1]-S1和(0,1)-S2一模一样,同时在S1和S2之间建立一一
> 对应要比原先简单得多。 这使你想到了什么呢? 对,取S1,S2为一个可数集,这样我们就能逐个元素地确定对应关系。 不妨取 S1 =
> {1,0,1/2,1/3,1/4...},取S2={1/2,1/3,1/4,...},这样,很快可以构造出一个映射来: f(0) =
> 1/2, f(1) = 1/3, f(1/2) = 1/4, f(1/3) = 1/5,...

原来如此,我开始还没想通,原来james lee的i是整数啊。果然不同凡响。

Gestorm

unread,
Aug 27, 2008, 9:23:33 PM8/27/08
to TopLanguage


On 8月27日, 下午1时56分, "james lee" <jamesliyuf...@gmail.com> wrote:
> 这个不难,
> 定义映射f: [0,1] -> (0,1)如下:
> f(0) = 1/2, f(1) = 1/4
>
> f(2^(-i)) = 2^(-i-2), i >= 1
> 其它为 f(x) = x
>
很强大!!!!
不过为什么要用 i 呢?开始我还以为是复数,发现大于1我又以为是实数,看了楼下几位的解说才明白是整数,如果用N的话立即就知道了。
哦,明白了,你也是程序员吧,for(i = 0; i < N; i++)里的i ^_^

Gestorm

unread,
Aug 27, 2008, 9:25:17 PM8/27/08
to TopLanguage


On 8月27日, 下午11时25分, denny.wang <wxiao...@gmail.com> wrote:
> 我只说说我第一感觉想到的一个办法:
> 因为相差两个元素,我首先想到的就是把这两个集合都拆成两部分,一个可数集(含{0,1})和另外一部分。
> 两者的后一部分元素都相同,虽不可数,但一一对应很容易构造
> 前一部分两个可数集很容易构造一一映射(...),这样就完成了.
> 依次方法,构造的方法任你想了
>
看了你的解说就全懂了,谢谢。

Gestorm

unread,
Aug 27, 2008, 9:30:01 PM8/27/08
to TopLanguage
On 8月27日, 下午11时25分, denny.wang <wxiao...@gmail.com> wrote:

> 在这里给出另外一个问题,忘了,这样的构造的映射的个数是多少?势为多少?
>
> 在08-8-27,ZelluX <zel...@gmail.com> 写道:
>
映射的个数似乎不小于[0,1]的可数子集的个数。

Gestorm

unread,
Aug 27, 2008, 9:32:32 PM8/27/08
to TopLanguage
On 8月27日, 下午2时09分, "Mingli Yuan" <mingli.y...@gmail.com> wrote:
> 更一般化的处理,请参照下面的定理和证明:
>
长见识了,谢谢

hayate

unread,
Aug 31, 2008, 1:21:11 AM8/31/08
to pon...@googlegroups.com
都很强大啊 哈哈
Reply all
Reply to author
Forward
0 new messages