整数划分问题(20211123200625)_第1页
整数划分问题(20211123200625)_第2页
整数划分问题(20211123200625)_第3页
整数划分问题(20211123200625)_第4页
整数划分问题(20211123200625)_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、上机实验报告课程名称 :计算机算法设计与分析班级:实验日期 :姓名 :aina学号 :指导教师:实验名称 :整数划分问题实验序号:实验成绩:一、实验目的及要求运用计算机语言 c+,编写程序,解决整数划分问题二、实验环境windows2000 ,c+ 三、实验内容在 vc+ 中编程求解整数划分问题将正整数 n 表示成一系列正整数之和,knnnn.21) 1, 1.(21knn,nk其中正整数 n 的这种表示称为正整数n 的划分。它的不同的划分个数称为正整数n的划分数,记作 p(n) 四、算法描述及实验步骤在正整数的所有不同的划分中,将最大加数不大于的划分个数记作。可以建立的如下递归关系。(1)1

2、, 1)1 ,(nnq当最大加数 n1 不大于 1 时,任何正整数 n 只有一种划分形式。即nn1.11(2)nmnnqmnq),(),(最大加数 n1 实际上不能大于n。因此,1 (3)) 1,(1),(nnqnnq正整数 n 的划分由nn1的划分和11nn的划分组成。(4)1),() 1,(),(mnmmnqmnqmnq正整数 n最大加数 n1 不大于 m 的划分mn1由的划分和11mn的划分组成。以上的关系实际上给出了计算),(mnq的递归式如下:11, 1),()1,()1,(1),(1),(mnmnmnmnmmnqmnqnnqnnqmnq由上分析,可写出如下算法:主文件:# incl

3、ude # include 整数划分 .h void main() int n; coutn; coutq(n,n)n; 头文件:# include int q(int n,int m) if(n1)|(m1) return 0; if(n=1)|(m=1) 2 return 1; if(nm) return q(n,n); if(n=m) return q(n,m-1)+1; return q(n,m-1)+q(n-m,m); 五、调试过程及实验结果调试成功后,得到-configuration: main - win32 debug- compiling. skipping. (no rel

4、evant changes detected) main.cpp main.obj - 0 error(s), 0 warning(s) 运行程序:输入 6 可得如下结果:3 输入 20 可得如下结果:六、总结这次实验让我学会了如何用c+语言编写程序解决划分问题。七、附录(源程序清单)主文件:# include # include 整数划分 .h void main() int n; coutn; coutq(n,n)n; 4 头文件:# include int q(int n,int m) if(n1)|(m1) return 0; if(n=1)|(m=1) return 1; if(nm) retu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论