| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1488 人关注过本帖
标题:求高手指点一个超级复杂的C程序
只看楼主 加入收藏
ying_860624
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-10-16
收藏
 问题点数:0 回复次数:14 
求高手指点一个超级复杂的C程序
Double recursion function

Ackermann Function is defined as

ack(0,n) = n + 1
ack(m,0) = ack( m-1, 1)
ack(m,n) = ack( m – 1, ack( m, n – 1 ))


For example
ack( 1, 1 )
= ack ( 0, ack ( 1, 0 ) )
= ack ( 0 , ack( 0, 1 ) )
= ack ( 0, 2 )
= 3

Try to work out ack( 1 , 2 ) and ack ( 1, 3 ) by hand.

Write a program that will accept two parameters and display the value of the corresponding Ackermann function. For example:


$ ack 1 1

The Ackermann value of ack(1,1) is 3

Using your program, try to find out the values of ack(2,3), ack(3,2) and ack(4,2).
WARNING!!!! It may not be as easy as it looks
搜索更多相关主题的帖子: 超级 
2008-10-16 10:34
就搞C
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2008-6-9
收藏
得分:0 
这个怎么复杂法?有点类似编译原理里面的语法分析
2008-10-16 10:41
woshiyun
Rank: 1
等 级:新手上路
威 望:2
帖 子:348
专家分:0
注 册:2008-6-16
收藏
得分:0 
int ack(int m,int n)
{
    if(m==0&&n==0) return 0;
    if(m==0) return n+1;
    if(n==0) return (ack(m-1,1));
    return ack(m-1, ack(m, n-1));
}


////////////////////////////////
我的程序很失败。。。算不出,呵呵

[[it] 本帖最后由 woshiyun 于 2008-10-16 12:57 编辑 [/it]]
2008-10-16 12:21
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
LS的程序显然是不太有效的。注意LZ贴出来内容的最后一句话。

不过,不鼓励帮别人做作业。同时鄙视一下标题党。

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-10-16 12:40
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
溢出了,不准备写了……

[[it] 本帖最后由 StarWing83 于 2008-10-17 13:45 编辑 [/it]]

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-10-16 12:50
xinshou2008
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2008-10-16
收藏
得分:0 
还是递归的思想。因为问题的求解跟问题的规模N有关。
2008-10-16 21:31
ying_860624
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-10-16
收藏
得分:0 
版主啊!你那结果怎么做出来的啊,帮帮忙吧
2008-10-17 11:04
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
递归式直接转换成递推做就可以啊。

倚天照海花无数,流水高山心自知。
2008-10-17 11:45
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
我晕。。。我记忆化dp,怎么得不到SW的答案-.-

樱花大战,  有爱.
2008-10-17 12:15
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
发现了。。。记忆dp没问题。。。数组越界了....在白度里面找到。。ack(4,2)=2^65536 − 3..计算机跑不动...

樱花大战,  有爱.
2008-10-17 13:01
快速回复:求高手指点一个超级复杂的C程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025203 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved