help !

stick1 2002-04-17 02:10:53
求解ackermann函数
{n+1; m=0,n>0
A(m,n)= {A(m-1,1); n=0,m>0
{A(m-1,A(m,n-1)) n>0,m>0
求救动态规划算法!
3x!!!



...全文
38 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
lbl20020123 2002-04-20
  • 打赏
  • 举报
回复
gz
starfish 2002-04-17
  • 打赏
  • 举报
回复
最简单的方法,用动态规划的备忘录法
即使用一个二维数祖A[1..m,1..n]记录所有的ackermann函数值
初始的时候全部填充-1,表示尚未计算过
然后直接用递归函数计算ackermann函数
在递归计算之前,现判断数组A中该函数值是否以被计算过,如果计算过了则直接从数组A中取出结果,不要再做重复计算;如果没有计算过,则递归计算。

大致的算法过程如下:

Ackermann(m, n)
1. if A[m,n] >= 0
2. then return A[m, n];
3. else if m = 0 and n > 0
4. then A[m,n] <- n + 1;
5. else if n = 0 and m > 0
6. then A[m,n] <- Ackermann(m-1, 1);
7. else if n > 0 and m > 0
8. then A[m,n] <- Ackermann(m-1, Ackermann(m, n-1));
9. return A[m, n];

33,028

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧