回溯法__算法实验报告

回溯法__算法实验报告

ID:38710811

大小:299.67 KB

页数:17页

时间:2019-06-18

回溯法__算法实验报告_第1页
回溯法__算法实验报告_第2页
回溯法__算法实验报告_第3页
回溯法__算法实验报告_第4页
回溯法__算法实验报告_第5页
资源描述:

《回溯法__算法实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验报告(2014/2015学年第二学期)课程名称算法分析与设计实验名称回溯法实验时间2015年5月28日指导单位计算机学院软件工程系指导教师张怡婷学生姓名王珣班级学号B13040212学院(系)计算机学院、软件学院专业计算机科学与技术实验报告实验名称回溯法指导教师张怡婷实验类型验证实验学时2实验时间2015-5-28一、实验目的和任务学习编程实现深度优先搜索状态空间树求解实际问题的方法,着重体会求解第一个可行解和求解所有可行解之间的差别。加深理解回溯法通过搜索状态空间树、同时用约束函数剪去不含答案状态子树的算法思想,会用蒙特

2、卡罗方法估计算法实际生成的状态空间树的结点数。二、实验环境(实验设备)VC++6.015三、实验原理及内容(包括操作过程、结果分析等)1、求24点问题给定四个1-9之间的自然数,其中每个数字只能使用一次,用算术运算符+,-,*,/构造出一个表达式,将这4个正整数连接起来(可以使用括号),使最终的得数为24。要求根据问题的特征设计具体算法并编程实现,输入数据为4个自然数。输出若有多个满足要求的表达式,则只输出其中一组;若搜索失败,则输出“Fail!”。【示例】采用一个表达式中用括号确定运算先后次序的方式,如:输入1,5,5,5四

3、个自然数,输出((5-(1/5))*5)。输入3,3,8,8四个自然数,输出(8/(3-(8/3)))。【测试数据】(1)1,5,5,5(2)3,3,8,8(3)3,8,8,8(4)1,2,3,4(5)2,4,5,6(6)4,2,2,5(7)1,2,2,6(8)4,2,8,8(9)0,3,8,8代码:#include#include#includeusingnamespacestd;constdoublePRECISION=1E-6;//精度常量constintCOUNT_

4、OF_NUMBER=4;//算24点的自然数个数constintNUMBER_TO_BE_CAL=24;classRationalNumber//定义有理数类(分子、分母){protected:intnumerator,denominator;//numerator:分子,denominator:分母boolinf;protected:intgcd(inta,intb){//求a和b的最大公约数intn=1,t;if(a==b)returna;if(a

5、=b;b=n;}returna;}public:RationalNumber(){inf=false;}RationalNumber(intn){numerator=n;denominator=1;inf=false;}RationalNumber(intnumerator,intdenominator){this->numerator=numerator;this->denominator=denominator;Simplify();}virtual~RationalNumber(){}voidSimplify(){if(

6、denominator==0){inf=true;}elseif(numerator==0){denominator=1;inf=false;}else{intk=gcd(abs(numerator),abs(denominator));numerator/=k;denominator/=k;inf=false;}}RationalNumberoperator+(constRationalNumber&b)const{RationalNumberresult;result.denominator=this->denominat

7、or*b.denominator;result.numerator=this->numerator*b.denominator+this->denominator*b.numerator;result.Simplify();returnresult;}RationalNumberoperator-(constRationalNumber&b)const{15RationalNumberresult;result.denominator=this->denominator*b.denominator;result.numerat

8、or=this->numerator*b.denominator-this->denominator*b.numerator;result.Simplify();returnresult;}RationalNumberoperator*(constRationalNumber

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。