代码改变世界

随笔分类 -  Mathematics∩Program

证明:一个无环有向图必定至少具有一个源

2015-06-02 20:30 by 星星之火✨🔥, 526 阅读, 收藏, 编辑
摘要: 要想证明上述命题,容易想到的办法是用反证法。首先,假设一个无环有向图一个源也没有,也就是,每一个顶点都至少有一个入度,接下来考虑调转所有边的方向后,图的属性(从有无源上来说,也就是对命题本身)没有任何变化,如是调整后,我们任选一个顶点作为起点,沿着有向边走,那么显然在|V| 步之内(包括|V|)我们... 阅读全文

十进制正整数与其二进制表示的位数之间的关系

2015-05-30 16:35 by 星星之火✨🔥, 1168 阅读, 收藏, 编辑
摘要: 在度量与数字特性相关的算法的输入规模时,计算机科学家常常倾向于度量数字n 的二进制表示中的比特数b: b = ⌊log2n⌋ + 1这种度量常常使我们对所讨论算法的效率有一个更加清晰的概念。下面我们来证明这个等式: 不失一般性,设正整数n 的二进制表示中共有b 位,因此n 的最大值就是所有的... 阅读全文

二叉树内部顶点与外部顶点在数量上的关系

2015-05-30 15:54 by 星星之火✨🔥, 2015 阅读, 收藏, 编辑
摘要: 分析一些树的算法时,我们常常需要以给定的二叉树的顶点数n(T) 来度量问题实例的规模。而这个顶点数n(T)指的就是树的扩展形式中所有顶点的个数,这些顶点分两类,一类是外部顶点,一类就是内部顶点。根据定义,一颗扩展的空二叉树是一个单独的外部顶点。为了确定一些算法(递归的求树的高度,递归的前序、中序、后... 阅读全文

非空二叉树的一个有趣的性质:n0 = n2 + 1

2015-05-09 08:27 by 星星之火✨🔥, 5550 阅读, 收藏, 编辑
摘要: 对任何非空二叉树T,若n0 表示叶结点的个数、n2 表示度为2 的非叶结点的个数,那么两者满足关系n0 = n2 + 1。这个性质很有意思,下面我们来证明它。证明:首先,假设该二叉树有N 个节点,那么它会有多少条边呢?答案是N - 1,这是因为除了根节点,其余的每个节点都有且只有一个父节点,那么这N... 阅读全文

欧几里得算法:从证明等式gcd(m, n) = gcd(n, m mod n)对每一对正整数m, n都成立说开去

2015-05-07 19:08 by 星星之火✨🔥, 4145 阅读, 收藏, 编辑
摘要: 写诗或者写程序的时候,我们经常要跟欧几里得算法打交道。然而有没要考虑到为什么欧几里得算法是有效且高效的,一些偏激(好吧,请允许我用这个带有浓重个人情感色彩的词汇)的计算机科学家认为,除非程序的正确性在数学上得到了完全严格的证实,否则我们不能认为程序是正确的。既然存在即合理,因此下面我就详细得解说一下... 阅读全文

完全偶图K(3,3)与完全图K5是否存在平面表示

2015-04-30 12:18 by 星星之火✨🔥, 5427 阅读, 收藏, 编辑
摘要: 本文论述k(3, 3)与K5平面表示的存在性。首先给出图的平面表示的定义: 若可以在平面里画出一个图而让边没有任何交叉(边的交叉是指边的直线或弧线在它们的公共端点以外的地方相交),则这个图是平面性的。这样一种画法称为这个图的平面表示。显然,证明一个图是非平面性比证明一个图是平面性的要困难。因为对于... 阅读全文

Dijkstar算法的数学原理

2015-04-28 16:40 by 星星之火✨🔥, 2655 阅读, 收藏, 编辑
摘要: Dijkstar算法是荷兰数学家迪克斯屈拉(or迪杰斯特拉?)在1959年发现的一个算法。是现有的几个求带权图中两个顶点之间最短通路的算法之一。算是一个相当经典的算法了。迪克斯屈拉算法应用于无向连通简单带权图中,求出顶点a 与z 之间的最短通路的长度。我感觉其算法精髓就是:找到第一个与a 最靠近的顶... 阅读全文

图论趣题

2015-04-13 22:56 by 星星之火✨🔥, 5926 阅读, 收藏, 编辑
摘要: 1、证明:在连通无向图的每一对不同顶点之间都存在简单通路。 证明:设u和v是连通无向图G = (V, E)的两个不同的顶点,因为G是连通的,所以u和v之间至少有一条通路。设x0, x1, x2, ..., xn 是长度最短的通路的顶点序列,其中x0 = u 而xn = v。这条长度最短的通路是简单... 阅读全文

图论基本概念

2015-04-10 23:00 by 星星之火✨🔥, 1406 阅读, 收藏, 编辑
摘要: 几种常见的图的分类: 完全图:n个顶点上的完全图是在每对不同顶点之间都恰有一条边的简单图。 二分图:若把简单图G的顶点集合分为两个不相交的非空集合V1和V2,使得图里的每一条边都连接着V1里的一个顶点和V2里的一个顶点(因此G里面没有边是连接着V1里的两个顶点或V2里的两个顶点),则G称为二分图(从 阅读全文

欧拉回路与欧拉通路存在性的充要条件及其证明

2015-04-06 16:35 by 星星之火✨🔥, 10414 阅读, 收藏, 编辑
摘要: 定理1:连通多重图中存在欧拉回路当且仅当图中所有顶点的度数为偶数。首先,我们来证明充分性,即存在欧拉回路则图中的所有顶点的度数必然为偶数。在图中任取一点,以该点作为起点,沿着欧拉回路走,当前顶点的出度为1,然后经过其它的顶点,注意到如果欧拉路径经过一个顶点(包括起点),它必然离开这个点,这样出入度之... 阅读全文

递推趣题

2015-04-02 23:19 by 星星之火✨🔥, 527 阅读, 收藏, 编辑
摘要: 在网上看到一个关于递推求解的课件,感觉里面的问题很经典有趣,层层递进,因此在这里记录一下。1、在一个平面上有一个圆和n条直线,这些直线中的每一条在圆内同其他直线相交,假设没有三条直线相交于一点,试问这些直线将圆分成多少区域。2、平面上有n条折线,问这些折线最多能将平面分割成多少块?(已知1—>2,2... 阅读全文

白话数论的基石:算术基本定理

2015-03-25 10:53 by 星星之火✨🔥, 2253 阅读, 收藏, 编辑
摘要: 算术基本定理,又称唯一分解定理,作为数论的基石,几乎每一个定理都建立在它之上,该定理讲述了一个基本事实:任何大于1的整数都能被唯一分解为若干个素数的乘积,这些素因子以非减序列排列。下面我将尽量以一种通俗易懂的方式或者干脆说是用白话文来证明这个定理。我们从两个方向来归约,即首先证明分解为素因子乘积的存... 阅读全文

证明定理常用方法锦集

2015-03-14 16:27 by 星星之火✨🔥, 3014 阅读, 收藏, 编辑
摘要: 下面将证明定理的方法主要归纳为以下几种:1)直接证明:通过证明当 p 为真时 q 必然为真而进行的对 p->q 的证明。2)反证法:反证法是一种间接证明方法,利用条件语句 p->q 等价于它的倒置 ¬q->¬p 的事实,换句话说,就是通过证明 q 是假时 p 一定是假来证明 p->q 为真。当不容易... 阅读全文

《数据结构与算法分析:C语言描述_原书第二版》CH2算法分析_课后习题_部分解答

2014-12-06 14:58 by 星星之火✨🔥, 6721 阅读, 收藏, 编辑
摘要: 对于一个初学者来说,作者的Solutions Manual把太多的细节留给了读者,这里尽自己的努力给出部分习题的详解:不当之处,欢迎指正。1、 按增长率排列下列函数:N,√2,N1.5,N2,NlogN, NloglogN,Nlog2N,Nlog(N2),2/N,2N,2N/2,37,N2logN,... 阅读全文

证明 logX < X 对所有 X > 0 成立

2014-11-30 23:38 by 星星之火✨&#128293;, 5490 阅读, 收藏, 编辑
摘要: 题目取自:《数据结构与算法分析:C语言描述_原书第二版》——Mark Allen Weiss 练习1.5(a) 证明下列公式: logX < X 对所有 X > 0 成立。(注意:计算机科学中,若无特别说明,所有对数都是以2为底的) 这个小题,看似简单。乍一看一高中证明题而已嘛。实则不然,我根据高中 阅读全文

3n+1问题

2014-11-28 22:20 by 星星之火✨&#128293;, 4972 阅读, 收藏, 编辑
摘要: 猜想: 对于任意大于1的自然数n,若n为奇数,则将n变为3n+1,否则变为n的一半。 经过若干次这样的变换,一定会使n变为1。例如3->10->5->16->8->2->1。 输入n,输出变换的次数。n≤10^9。 样例输入:3 样例输出:7 不假思索的写出下面的代码: 然而,程序正确吗?很不幸,如 阅读全文