第三十三章 非空子集

2019-04-06 作者: 程序小猿
第三十三章 非空子集

“系统妹子,下一站去哪儿?”

刚当完传教士回来,杨成只感觉腰酸背痛腿抽筋。

他恨不能马上去做个sPa来舒缓一下筋骨。

“德国”,系统的回答让杨成眼前一亮。

他开始想象自己在德国的某个景区畅游一番的情形了。

德国哈雷大学,这所有着两百年历史的学校,保存着很多历史的名迹。

其中最富盛名的当属一代数学大师康托尔的故居。

锈迹斑斑的小院铁门被杨成推开,发出一阵刺耳的声响。

遍地的碎叶积了厚厚的一层,显示出这里的门可罗雀。

而空气中则弥漫着一股尘封的历史气息。

杨成感觉到有一种声音在呼唤着他,于是毫不迟疑地大步走进故居内部。

这居室内的东西都没有被动过,布满了厚厚的灰尘,一些手稿和书籍甚至难辨字迹。

唯一显眼的是一块小小的黑板,上面用石膏写下了一段简介:

“康托尔在这里度过了人生的后半辈子,他创建了集合论。”

“过往的游客哟,请停下你们的脚步,回答一个简单的问题。”

“给定一个大小为n的集合,它的非空子集数目是多少?”

这段简介的下方有很多乱七八糟的个人签名。

比方说“xx到此一游”。

没有一个真正的回答。

游客们毕竟只是慕名而来,面对这样的问题,也大都是一笑了之。

杨成却是驻足,耐心地思考起来,毕竟他是来解决问题的。

比如说有序列,它的非空子集包括:

,,,,,,,,,,,,,,

总共有15项。

而空集并没有被统计在内。

传统的求子集方法在这个问题上可能派不上用场。

如果对性能有要求,比如集合的大小可能达到50甚至更多,那么使用递归耗费的时间就太长了。

好在我们无须求子集具体的内容,单单只需要求数目,所以可以借助一个公式。

(注意不是序列,集合没有重复的元素)

如果一个集合,它有n个元素,那么,该集合就有2的n次方个子集。

这个子集是包含空集和自身的,所以要求非空子集,就可以用2^n-1来计算。

杨成拾起一块小小的粉笔,在黑板的空白处郑重地写下了这个公式。

康托尔生前的学说集合论并不被人认可,他的价值在死后才得以体现。

每一位科学先哲,都值得致以敬意!

杨成感觉在这款游戏中学到更多的,不仅仅是知识,还有一种对待问题的态度。

哪怕是最简单的,一行代码可以搞定的问题,也应该仔细地推敲。

他静静地站立着,感受先贤的气息,直到系统音拉回他的思绪。

“叮!恭喜您完成了求非空子集的相关任务!”

“当前积分69分,击败了全球30%的玩家,请您再接再厉!”

关闭