免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: loveguohuasai
打印 上一主题 下一主题

[算法] 母牛数量算法 [复制链接]

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
41 [报告]
发表于 2003-08-05 18:37 |只看该作者

母牛数量算法

真的不好意思,呵呵,昨天没有仔细看。
loveguohuasai和zlzj2010的做法的确是对的。而且f(n)=f(n-1)+f(n-3)的公式的确是太漂亮了,今天仔细又看了看才理解。
我觉得这的确是最简单的递归思想了,呵呵,昨天发的帖子,真是对不起了。
用这个公式递归的话,每一层会陷入两个递归,复杂度很高。但如果利用f(n-1)递归里计算出来的f(n-3)结果的话,写出程序的话就非常漂亮了。

呵呵,再次向loveguohuasai和zlzj2010致歉。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
42 [报告]
发表于 2003-08-05 18:47 |只看该作者

母牛数量算法

原帖由 "loveguohuasai" 发表:
   

我没有发觉你也提到那条公式,f(n)=f(n-1)+f(n-3)(或者n-4),这样本来就是递归了,不用递归简直是犯贱啊 。一个递归,都不用几句就搞定了。
   

用不用递归,的确是看自己的喜好,但是如果你稍微有点常识的话就会知道,递归是及其耗费系统资源的算法。尤其你上面的公式,如果不加优化就递归的话,更是浪费资源!就这个问题来说,你用大家写的非递归算法算一遍,很容易就体会出速度的差异了。这还只是个小问题,更何况大的问题,大的工程。源代码的精简不是最重要的,目标代码的优化才是真正的目标。而代码优化最重要的就是对算法的优化。

话又说回来,即使这个问题用不用非递归没什么分别。那你就要问自己来这里讨论的目的了。我们不是为了单单解决这样一个个简单的问题,而是为了从这一个个的问题中学到东西,多多思考用不同的算法解决问题。

因此,对于“不用递归简直是犯贱”的说法,很是不受用!!!!我想,技术论坛里讨论技术的帖子里也不应该出现这样的话。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
43 [报告]
发表于 2003-08-05 18:53 |只看该作者

母牛数量算法

4周岁开始生小牛:10年:10,30年:6272
3周岁开始生小牛:10年:19,30年:39865
PS:看哪,这就是晚生优生的结果。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
44 [报告]
发表于 2003-08-05 19:03 |只看该作者

母牛数量算法

大家其实可以考虑一下另外的一条途径:
如何利用 C++ 的特性而得出与以上讨论的完全不同的另外一种算法?
提示:牺牲空间,换取时间。

论坛徽章:
0
45 [报告]
发表于 2003-08-05 19:12 |只看该作者

母牛数量算法

第4年开始生。
year0:0=1,1=0,2+=0
year1:0=0,1=1,2+=0
year2:0=0,1=0,2+=1
year3:0=1,1=0,2+=1
year4:0=1,1=1,2+=1
year5:0=1,1=1,2+=2
year6:0=2,1=1,2+=3
year7:0=3,1=2,2+=4
year8:0=4,1=3,2+=6
year9:0=6,1=4,2+=9
the totle cows=19

n=10的结果。总数为19。
n=30 。总数为39865。

论坛徽章:
0
46 [报告]
发表于 2003-08-05 19:48 |只看该作者

母牛数量算法

各位大狭
如果溢出
不能用
long double 替换 long int 吗?
是不是long double 算得比较久啊?

论坛徽章:
0
47 [报告]
发表于 2003-08-05 20:48 |只看该作者

母牛数量算法

原帖由 "aero" 发表:
   

用不用递归,的确是看自己的喜好,但是如果你稍微有点常识的话就会知道,递归是及其耗费系统资源的算法。尤其你上面的公式,如果不加优化就递归的话,更是浪费资源!就这个问题来说,你用大家写的非递归算法..........



我的意思是这道题如果不用递归的话,实在很麻烦,
用递归一条公式就搞定,我觉得简单很多

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
48 [报告]
发表于 2003-08-05 21:20 |只看该作者

母牛数量算法

用递归的话,代码看起来是简洁很多,但是复杂度实在是太高了。
看看我写的非递归算法,找好规律,也不是很麻烦,一个循环就搞定了。

论坛徽章:
0
49 [报告]
发表于 2003-08-05 21:21 |只看该作者

母牛数量算法

高明

论坛徽章:
0
50 [报告]
发表于 2003-08-05 21:35 |只看该作者

母牛数量算法

原帖由 "aero" 发表:
用递归的话,代码看起来是简洁很多,但是复杂度实在是太高了。
看看我写的非递归算法,找好规律,也不是很麻烦,一个循环就搞定了。
   

你不是也用了递归求fun(n-1)吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP