组合数学实验报告.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
组合数学实验报告

组合数学实验报告 班级:网络091班 姓名:郭静 学号:092566 实验一 Fibonacci数非递归解 一、实验题目 Fibonacci数列的定义如下: 请用递归方法和非递归方法求解该问题,各编写一个函数,要求函数接受的值,返回的值。 二、实验要求 1 分别求的情况。 2 对比两个程序的执行时间,然后分别对两种算法进行复杂性分析。 三、实验源程序 #include iostream #include time.h using namespace std; // 递归方式求解Fibonacci数列 double methodOneFibonacci(int n) { double result; if(n==1 || n==2) { result=1; } else { result=methodOneFibonacci(n-2)+methodOneFibonacci(n-1); } return result; } // 非递归方式求解Fibonacci数列 double methodTwoFibonacci(int n) { double result; double f1=1; double f2=1; if(n==1 || n==2) { result=1; } else { while(n-2) { result=f1+f2; f1=f2; f2=result; n--; } } return result; } double (*fibonacci)(int n); void deal(int n) { // 计算结果 double result; // 计算开始时间 clock_t start; // 计算结束时间 clock_t finish; // 计算花费的时间 double duration; start=clock(); result=fibonacci(n); coutthe result is resultendl; finish=clock(); duration=((double)(finish-start))/CLOCKS_PER_SEC; coutspent time is durationsendl; } int main(int argc,char* argv[]) { while(1) { // 参数,表述计算的规模 int n; coutinput the data n is: ; cinn; if(n0) { cout采用非递归的方法进行求解:endl; fibonacci=methodTwoFibonacci; deal(n); cout采用递归的方法进行求解:endl; fibonacci=methodOneFibonacci; deal(n); } else { coutn is wrong,please input the n again!endl; } } return 0; } 采用递归算法时消耗太多的时间。 五、实验总结 结果截图是递归算法与非递归算法的执行时间对比。 根据两种算法所写的程序的执行时间的的对比,非递归算法要比递归算法的效率要高很多。而且随着n的逐渐增大,非递归算法的效率要远远超过递归算法的效率。但是,采用递归算法编写的程序易于理解,并且易于编写。 实验二 二项式系数的加法求解 一、实验题目 编写一个程序,只用加法,求出中取个的组合数 二、实验要求 1 要求使用公式,采用递归方法和非递归方法进行求解 2 对两种算法进行分析 三、实验源程序 #include iostream #include time.h using namespace std; // 采用递归方法求解组合数 int MethodOneCombinatorics(int n,int r) { int result; if(r==0 || n==1 || n==r) { result=1; } else { result=MethodOneCombinatorics(n-1,r)+MethodOneCombinatorics(n-1,r-1); } return result; } // 采用非递归方法求解组合数 int MethodTwoCombinatorics(int n,int r) { int result; int C1=1; int C2=1;

文档评论(0)

almm118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档