返回

编程之战

首页
关灯
护眼
字体:
第三十三章 非空子集
书架管理 返回目录
    “系统妹子,下一站去哪儿?”

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    比方说“xx到此一游”。

    没有一个真正的回答。

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

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

    比如说有序列{1,2,3,4},它的非空子集包括:

    {{1},{2},{3},{4},{1,2},{1,3},{1,4},{2,3},{2,4},{3,4},{1,2,3},{1,2,4},{1,3,4},{2,3,4},{1,2,3,4}}

    总共有15项。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

上一章 目录 下一章