算法
fehly
这个作者很懒,什么都没留下…
展开
-
分治法的基本思想
分治法的基本思想是将一个规模为n的问题分解为k个规模较小的子问题,这些子问题相互独立且与原问题相同,递归地解这些子问题,然后将各个子问题的解合并得到原问题的解。它的一般算法设计模式如下: divide-and-conquer(P){ if(|P|<=n0)adhoc(P); divide P ...2010-03-08 18:22:18 · 1212 阅读 · 0 评论 -
整数划分问题
将正整数n表示成一系列正整数之和,n=n∨1+n∨2+...+n∨k,其中n∨1>=n∨2>=...>=n∨k>=1,k>=1. 正整数n的这种表示称为正整数n的划分。正整数n的不同的划分个数称为正整数n的划分数,作为p(n)。 例如,正整数6有如下11种不同的划分,所有p(6)=11。 6; ...原创 2010-03-03 19:33:17 · 120 阅读 · 0 评论 -
排列问题
设R={r∨1,r∨2,...,r∨n}是要进行排列的n个元素,R∨i=R-{r∨i}。集合X中元素的全排列记为perm(X)。(r∨i)perm(X)表示在全排列perm(X)的每一个排列前加上前缀r∨i得到的排列。R的全排列可归纳定义如下: 当n=1时,perm(R)=(r),其中r是集合R中唯一的元素; 当n>1时,perm(R)由(r∨1)...2010-03-02 19:45:11 · 158 阅读 · 0 评论 -
Ackerman函数
并非一切递归函数都能用非递归方式定义,为了对递归函数的复杂性有更多的了解,双递归函数——Ackerman函数,当一个函数以及它的一个变量是由函数自身定义时,称这个函数是双递归函数,Ackerman函数A(n,m)有两个独立的整变量m>=0和n>=0,其定义如下: A(1,0)=2 A(0,m)=1 ...原创 2010-03-02 19:28:11 · 378 阅读 · 0 评论 -
斐波那契数列(Fibonacci)
斐波那契数列无穷数列 1,1,2,3,5,8,13,21,34,55....,称为Fibonacci数列。它可以定规地定义为:n=0,1; F(n)=1n>1; F(n)=F(n-1)+F(n-2)这是一个递归的关系式,它说明当n大于1时,这个数列的第n项的值,是它前面两项的和,它用两个较小的自变量的函数值来定义较大自变量的函数值,所以需要两个初始值F(0)和F(1)。...原创 2010-01-29 19:29:38 · 287 阅读 · 0 评论 -
阶乘函数
阶乘函数 阶乘函数可递归的定义为 n!分为2种: n=0 n!=1 n>0 n!=n(n-1)! 阶乘函数的自变量n的定义域是非负整数,递归式的第一式给出了这个函数的初始值,是非递归地定义的,每个递归函数都必须有非递归定义的初始值,否则递归函数就无法计算,递归式的第二试是用比较小自变量的函数值来表示较大自变量的函数值的方式来定义n的阶乘。定义式的左右两边都引用了阶乘记号,是递归定义式。...原创 2010-01-28 19:49:08 · 1250 阅读 · 0 评论 -
Strassen矩形算法
矩阵乘法是线性代数中最常见的运算之一,它在数值计算中有广泛的应用。若A和B是2个nn的矩阵,则它们的乘积C=AB同样是一个nn的矩阵。A和B的乘积矩阵C中的元素C[i,j]定义为: 若依此定义来计算A和B的乘积矩阵C,则每计算C的一个元素C[i,j],需要做n个乘法和n-1次加法。因此,求出矩阵C的n∧2个元素所需的计算时间为0(n∧3)。 20世纪60年代末,Strassen采用...2010-03-12 16:02:01 · 252 阅读 · 0 评论 -
大整数的乘法
通常,在分析算法的计算负责性时,都将加法和乘法运算当做基本运算来处理,即将执行一次加法或乘法运算所需的计算时间,当做一个仅取决于计算机硬件处理速度的常数。这个假定仅在参加运算的整数能在计算机硬件对整数的表示范围内直接处理时,才是合理的,然而,在某些情况下,要处理很大的整数,它无法再计算机硬件能直接表示的整数范围内进行处理,若用浮点数表示它,则只能近似地表示它的大小,计算结...2010-03-12 15:45:09 · 196 阅读 · 0 评论 -
二分搜索技术
二分搜索算法是运用分治策略的典型例子。 给定已排好序的n个元素a[0:n-1],现在在这个n个元素中找出一个特定元素x。 首先较易想到的是用顺序搜索方法,逐个比较a[0:n-1]中元素,直至找出元素x或搜索遍整个数组后确定x不在其中。这个方法没有很好地利用n个元素已排好序这个条件,因此在最坏情况下,顺序搜索方法需要O...2010-03-08 18:42:12 · 229 阅读 · 0 评论 -
Hanoi塔问题
河内之塔(Towers of Hanoi)是法国人M.Claus(Lucas)于1883年从泰国带至法国的,河内为越战时北越的首都,即现在的胡志明市;1883年法国数学家 Edouard Lucas曾提及这个故事,据说创世纪时Benares有一座波罗教塔,是由三支钻石棒(Pag)所支撑,开始时神在第一根棒上放置64个由上至下依由小至大排列的金盘(Disc),并命令僧侣将所有的金盘...原创 2010-03-04 19:31:53 · 110 阅读 · 0 评论