毕业设计,毕业论文代写。专业水平。钻石水准,黄金品质。

计算机专业毕业设计,论文,设计代写。电邮:elevenor@gmail.com。专业水平,质优价廉。

原创 两种计算Ack(m,n)的非递归算法收藏

新一篇: Kruskal算法完整的实现代码 | 旧一篇: 荒唐,浙大2001年试卷的一个明显错误

 
已知Ackermann函数定义如下:
             [     n+1                  if m=0
   akm(m,n)=-[     ack(m-1,1)           if m<>0 n=0
             [    akm(m-1,akm(m,n-1)) if m<>0 n<>0
    写出计算Ack(m,n)的非递归算法。
【北京航空航天大学 1999 六 (15分)】,【同济大学1999 】
法一:
int Ackerman(int m.int n)
{
in akm[m][n];
int i,j;
memset(akm,o,sizeof(akm));
for(j=0;j<n;j++)
akm[0][j]=j+1;
for(i=1;i<m;i++)
{
akm[i][0]=akm[i-1][1];
for(j=1;j<n;j++)
{
akm[i][j]=akm[i-1][akm[i][j-1]];
}
}
return akm[m][n];
}
法二:
stack s;
int ack(int m,int n)
{
int top=0;
s[top].mval=m;
s[top].nval=n;
do
{
while(s[top].mval)
{
while(s[top].nval)
{
top++;
s[top].mval= s[top-1].mval;
s[top].nval= s[top-1].nval-1;
}
s[top].mval--;
s[top].nval=1;
}
if(top>0)
{
top--;
s[top].mval--;
s[top].nval= s[top+1].nval++;
}
}while(top!=0|| s[top].mval!=0);
ack= s[top].nval+1;
top--;
}
 
更多内容:
荷兰国旗算法分析
http://blog.csdn.net/ctu_85/archive/2007/01/03/1472994.aspx
银行家算法代码分析
http://blog.csdn.net/ctu_85/archive/2006/09/09/1198551.aspx
更多试题解答:
两种计算Ack(m,n)的非递归算法
http://blog.csdn.net/ctu_85/archive/2006/11/29/1419396.aspx
上海交通大学1999年
http://blog.csdn.net/ctu_85/archive/2006/11/09/1376289.aspx
东北大学2001年
http://blog.csdn.net/ctu_85/archive/2006/11/09/1376287.aspx
清华大学1994年
http://blog.csdn.net/ctu_85/archive/2006/10/24/1349754.aspx
中国科学院2002年
http://blog.csdn.net/ctu_85/archive/2006/10/24/1349704.aspx
浙江大学计算机复试解答1
http://blog.csdn.net/ctu_85/archive/2006/10/15/1334936.aspx
浙江大学计算机复试解答2
http://blog.csdn.net/ctu_85/archive/2006/10/16/1336101.aspx
浙江大学计算机复试解答3
http://blog.csdn.net/ctu_85/archive/2006/11/02/1363159.aspx
软件可行性报告
http://blog.csdn.net/ctu_85/archive/2006/06/06/775894.aspx
软件需求分析报告
http://blog.csdn.net/ctu_85/archive/2006/06/06/775892.aspx

发表于 @ 2006年11月29日 09:03:00|评论(loading...)|编辑

新一篇: Kruskal算法完整的实现代码 | 旧一篇: 荒唐,浙大2001年试卷的一个明显错误

评论

#请输入尊姓大名 发表于2008-01-09 20:19:51  IP: 222.171.23.*
方法1是错误的,算到第3列就出问题了
#QIQI 发表于2008-10-01 11:21:07  IP: 202.114.0.*
同意楼上,你只给第一列的前n个初始化了,殊不知所有的值最后都要从第一列中得到,(3,7)就有1021。
发表评论  


登录
Csdn Blog version 3.1a
Copyright © ctu_85