趣题:奇怪的自然数集划分
2008-09-03 18:52
176 查看
给定一个集合S和数n,从集合S中取出两个不同的数a,b满足a+b=n的总方案数叫做“集合S中关于n的互补数对个数”。是否有可能把全体非负整数划分为A、B两个集合,使得对于任意一个n,集合A和集合B中关于n的互补数对的个数都相同?
答案是肯定的。此处,神奇的二进制再次在看似与它毫不相干的地方显示出自己独特的力量。把所有数写成二进制,有偶数个数字“1”的数归入A集合,有奇数个数字“1”的归入B集合。为了证明A、B中关于n的互补数对个数相同,我们在这两组互补数对间建立一个一一对应的关系。假设A集合中有两个数a1,a2满足a1+a2=n,那么找出a1和a2的二进制表达中右起第一个数码不同的地方(由于a1≠a2,因此这一定能办到)。把两个数字各自在该位置上的数码对换一下,“0”变成“1”,“1”变成“0”。新的两个数就是b1和b2。显然,b1和b2都属于B集合,并且b1+b2=n。
有趣的是,这种划分方法是唯一的(无妨设0∈A)。为了证明这一点,我们只需要施归纳于n:假设为了满足关于1,2,...,n-1的互补数对个数相同的条件,从0到n-1这n个数的位置是唯一确定的,现在考虑(为了满足关于n相等的条件)n应该放到哪边。假设在没有n的时候,两个集合关于n的互补数对分别有c(A)和c(B)个。把n放进集合B里之后c(A)和c(B)都不变,但把n放进集合A后c(A)会加一(因为0在A里)。因此,n最多属于其中一个集合,不可能出现两边都可以的情况。
答案是肯定的。此处,神奇的二进制再次在看似与它毫不相干的地方显示出自己独特的力量。把所有数写成二进制,有偶数个数字“1”的数归入A集合,有奇数个数字“1”的归入B集合。为了证明A、B中关于n的互补数对个数相同,我们在这两组互补数对间建立一个一一对应的关系。假设A集合中有两个数a1,a2满足a1+a2=n,那么找出a1和a2的二进制表达中右起第一个数码不同的地方(由于a1≠a2,因此这一定能办到)。把两个数字各自在该位置上的数码对换一下,“0”变成“1”,“1”变成“0”。新的两个数就是b1和b2。显然,b1和b2都属于B集合,并且b1+b2=n。
有趣的是,这种划分方法是唯一的(无妨设0∈A)。为了证明这一点,我们只需要施归纳于n:假设为了满足关于1,2,...,n-1的互补数对个数相同的条件,从0到n-1这n个数的位置是唯一确定的,现在考虑(为了满足关于n相等的条件)n应该放到哪边。假设在没有n的时候,两个集合关于n的互补数对分别有c(A)和c(B)个。把n放进集合B里之后c(A)和c(B)都不变,但把n放进集合A后c(A)会加一(因为0在A里)。因此,n最多属于其中一个集合,不可能出现两边都可以的情况。
相关文章推荐
- 趣题:奇怪的有向图 任两点间两步之内可达的路径有且仅有一条
- 【codevs1039】01年noip TG--数的划分满分dp+愚蠢深搜+pas的奇怪做法
- [再寄小读者之数学篇](2014-06-14 自然数集到自身的两个不可交换的双射)
- UyHiP趣题:自然数划分中的幂关系
- 【数学】康托对于实数集大于自然数集的对角线证法
- 探寻C/C++中更快的大数(自然数集)模板
- 一个纠结了我N久的 数集划分问题
- 关于自然数集N到素数集P的一个单射的三种构造
- javascript趣题(高人若知道script有什么奇怪的用法或令人费解的地方,务必留下片言碎语,不胜感激!)
- 地球上那些奇怪又自然的东西
- 子网划分和子网掩码详解
- JVM对象分代内存划分与垃圾回收
- 容灾备份方式在我国的基本等级划分
- 南阳理工oj 整数划分(DP)
- 编译模块的时候出现的莫名奇怪的错误
- 51nod 1201 整数划分(dp)
- ogre里面奇怪的问题
- Java虚拟机之Java内存区域划分
- 奇怪的博客
- mariadb中创建外键时的一个奇怪的情况