7年前一个组合算法错失鹅场offer,之后专门了解排列组合的算法,岂知入了社会,大部分算法根本就用不到。闲着无事,回忆排列算法如何实现的。 算法最重要的一步-证明,貌似一般学校都不教的吧。用数学归纳可以简单认为是对的。 1 int getValidLen(int a[], int max) 2 { ...
分类:
编程语言 时间:
2018-05-01 20:26:21
阅读次数:
162
元素或为1或为 1的行列式的值的估计 2018.04.12 设$n(n 2)$阶行列式$\det A$的所有元素或为$1$或$ 1$,求证:$\det A$的绝对值小于等于$(n 1)!(n 1)$. $solution:$ 数学归纳法. 考虑$n=3$的情形,第一列元素均为1或 1,故可对这一列上 ...
分类:
其他好文 时间:
2018-04-16 11:02:03
阅读次数:
202
模板特化(也有翻译为模板具体化)(specialization) 如果把模板函数当作数学归纳法的话,模板特化就是n=常数C的情况。 如果上面的T是char 类型,那么这种比较是不符合我们要求的,它比较的是地址,char\ 应该用strcmp。 &ems ...
分类:
编程语言 时间:
2018-04-06 23:44:38
阅读次数:
315
一、递归方程 按照分治的思想,可以将一个递归的复杂度写成递归方程 一、解递归方程--猜然后证明 该方法又称为代入法,步骤如下: 1、猜解的形式 2、数学归纳法证明正确 例子: 我们假设有如下递归式: 我们猜其解为T(n)=O(nlgn),然后对递归式进行替换,得 特别注意:我们替换之后得出的结果必须 ...
分类:
编程语言 时间:
2018-03-24 14:26:17
阅读次数:
205
"Portal" Description 定义$k$ bonacci数列$\{F_n\}$:$ \left\{\begin{matrix} F_i=0 \ (i 可以用数学归纳法证明。 若对于正整数$k$,$\forall s\in [0,F_k 1]$该结论成立,则$\forall s\in [F ...
分类:
其他好文 时间:
2018-03-13 14:05:12
阅读次数:
159
本章的重点是循环不变式。也就是在一个循环中存在着某些不变的量。它类似于数学归纳法的归纳步骤: 我们在设计一个算法、分析一个算法的时候,要适当应用循环不变式来简化分析工作、证明算法的正确性。 书中举例插入排序: n个元素的待排序数组A,下标是从1到n。 j从2开始一直遍历到大于n(此时会退出循环)。循 ...
分类:
编程语言 时间:
2018-01-21 01:12:06
阅读次数:
174
算法的时间复杂度和空间复杂度-总结 通常,对于一个给定的算法,我们要做 两项分析。第一是从数学上证明算法的正确性,这一步主要用到形式化证明的方法及相关推理模式,如循环不变式、数学归纳法等。而在证明算法是正确的基础上,第二部就是分析算法的时间复杂度。算法的时间复杂度反映了程序执行时间随输入规模增长而增 ...
分类:
其他好文 时间:
2018-01-18 16:58:28
阅读次数:
175
递归是自己调用自己的编程技术,是程序设计中的数学归纳法。特征:调用自身;当调用自身的时候,是为了解决更小的问题;存在某个足够简单的问题的层次,在这一层算法中不需要调用自己就可以直接解答,且返回结果。当递归不再调用自己时就会退出递归。 三角数字 阶乘 ...
分类:
其他好文 时间:
2017-12-24 12:43:35
阅读次数:
120
最大公约数: 如果数a能被数b整除,a就叫做b的倍数,b就叫做a的约数。 几个整数中公有的约数,叫做这几个数的公约数;其中最大的一个,叫做这几个数的最大公约数。 12、16的公约数有1、2、4,其中最大的一个是4,4是12与16的最大公约数,一般记为(12,16)=4。 公约数的用途就是约分: 把一 ...
分类:
编程语言 时间:
2017-12-23 14:28:39
阅读次数:
178
算法的时间复杂度和空间复杂度-总结 通常,对于一个给定的算法,我们要做 两项分析。第一是从数学上证明算法的正确性,这一步主要用到形式化证明的方法及相关推理模式,如循环不变式、数学归纳法等。而在证明算法是正确的基础上,第二部就是分析算法的时间复杂度。算法的时间复杂度反映了程序执行时间随输入规模增长而增 ...
分类:
其他好文 时间:
2017-12-11 20:05:06
阅读次数:
254