代码改变世界

随笔分类 - 10-离散数学

迷人的斐波那契数

2012-04-19 00:31 by Anders Cui, 4544 阅读, 收藏, 编辑
摘要:繁殖力超强的兔子说到斐波那契数,我们自然会想到曾经有一群繁殖力超强的兔子。比萨的商人斐波那契(Fibonacci,12-13世纪,称为比萨的列奥那多)接触到阿拉伯数学后,在其著作《Liber Abaci》中,引入了这个著名的兔子问题。但如果向前追溯下去,则可以追溯到古老的印度数学。斐波那契使用了一个理想化了的兔子生长模型进行研究,并假设:第一个月初有一对刚诞生的兔子两个月之后(第三个月初)它们可以生育每月每对可生育的兔子会诞生下一对新兔子兔子永不死去从第一个月开始,兔子的数目(对)依次是:1,1,2,3,5,8。。。这样就形成了一个序列,记为{Fn},则该序列存在一个递推关系:F(n)=F(n 阅读全文

整数的展开

2011-03-14 00:33 by Anders Cui, 2182 阅读, 收藏, 编辑
摘要:简单讨论了整数的b进制展开和康托尔展开。 阅读全文

离散数学拾趣(三):集合的子集有多少个

2011-03-10 02:54 by Anders Cui, 2768 阅读, 收藏, 编辑
摘要:集合广泛应用于计数问题,这类问题需要讨论集合的大小。令S为集合。若S中恰有n个不同的元素,n是非负整数,就说S是有限集合,而n是S的基数,用|S|表示。若S={ 1, 2, 3 },则|S| = 3。有时候需要考虑一个集合的元素所有可能的组合,看它们是否具有某种性质。为此构造一个新的集合,它以S的所有子集作为它的元素,该集合称为S的幂集合,记为P(S)。比如:本文的主题也就是:对于集合S,P(S)的基数是多少?方法一:首先观察上面例子中的三个集合,它们的基数分别是0、1、2,而它们的幂集合的基数分别是,于是可以猜想n个元素的集合有个子集,下面用数学归纳法证明。基础步骤:由上面例子可知,当n=0 阅读全文

找零钱的两种方法

2011-03-06 20:31 by Anders Cui, 15518 阅读, 收藏, 编辑
摘要:采用贪心算法和动态规划解决找零钱的问题。 阅读全文

离散数学拾趣(二):逻辑难题

2011-03-04 00:28 by Anders Cui, 2004 阅读, 收藏, 编辑
摘要:可以用逻辑推理解决的难题称为逻辑难题,解决这样的问题是实践逻辑规则的一种好方法。本文介绍了Raymond Smullyan的岛屿居民难题与爱因斯坦难题。 阅读全文

离散数学拾趣(一)

2011-03-04 00:05 by Anders Cui, 1134 阅读, 收藏, 编辑
摘要:在学习英语的时候,会有一种感受,“记住它”不算是好的方法,也许记住了单词的含义,也许掌握了语法的规则,但是仍然很难用英语来表达自己的想法。这里面的问题在于,没有“用英语去思考”,也就是以英语的方式去掌握它。学习计算机,亦是如此,往往有人说学习一门编程语言只要几天就够了,听到这样的话,我的理解是:你在说它的语法容易理解,真正学好这门语言,当然应该以它应有的方式去写代码。而且,不仅仅是学习编程语言是如此,整个计算机科学的学习都会是这样,应该了解计算机的语言,用它来理解计算机。计算机的基础是数学,尤其是离散数学。近日在读《离散数学及其应用》(第五版),才体会到离散数学在计算机学习中的重要性,当其中的 阅读全文