欢迎来到天天文库
浏览记录
ID:58225866
大小:97.64 KB
页数:5页
时间:2020-04-29
《人工智能-合一算法(C++).docx》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、人工智能第1次作业一般合一算法(C++实现)姓名:佟学号:班级:12计本非师学院:信息学院一、简单程序如下#include#include#includeusingnamespacestd;intiC=0;//标记公式集中括号匹配数classSyncretism{private:structTransform{//一个代换(差异集)stringt_f1;stringt_f2;};public:boolIssyn(stringf1,stringf
2、2,vector&t);//是否能合一Transformdifferent(conststringf1,conststringf2)//求差异集{inti=0;Transformt;while(f1.at(i)==f2.at(i))i++;intj1=i;while(j13、gth()-1&&f2.at(j2)!=',')j2++;if(j2-i==0)returnt;t.t_f2=f2.substr(i,j2-i);while(t.t_f1[j1-i-1]==t.t_f2[j2-i-1]){t.t_f1.erase(j1-1-i);t.t_f2.erase(j2-i-1);j1--;j2--;}returnt;}boolsame(conststringf1,conststringf2);//判断两个公式是否相同stringchange(stringf,Transf4、ormt);//用代换q对公式f进行合一代换boollegal(Transform&t);//intvar(conststrings);//s中每个()内的子串是变量还是常量voidshow();//最终演示算法};boolSyncretism::Issyn(stringf1,stringf2,vector&lan){while(!same(f1,f2)){Transformt=different(f1,f2);boolflag=legal(t);if(!flag)retu5、rnfalse;else{lan.push_back(t);//将t加入vectorlan中if(flag){f1=change(f1,lan.back());//用lan的最后一个元素代换f2=change(f2,lan.back());cout<<"变换后:"<6、tstringf1,conststringf2){if(f1.compare(f2)==0)returntrue;elsereturnfalse;}stringSyncretism::change(stringf,Transformt){inti=f.find(t.t_f2);while(i7、tism::legal(Transform&t){if(t.t_f1.length()==08、9、t.t_f2.length==0)returnfalse;elseif(var(t.t_f1)==010、11、var(t.t_f2)==0)returnfalse;elseif(var(t.t_f1)==1&&var(t.t_f2)==1&&t.t_f1.compare(t.t_f2)!=0)returnfalse;elseif(var(t.t_f1)==2){if(var(t.t_f2)==1){stri12、ngtemp=t.t_f1;//变量常量交换位置t.t_f1=t.t_f2;t.t_f2=temp;}else{inti1=var(t.t_f2);i1=iC;iC=0;inti2=var(t.t_f1);i2=iC;if(i1
3、gth()-1&&f2.at(j2)!=',')j2++;if(j2-i==0)returnt;t.t_f2=f2.substr(i,j2-i);while(t.t_f1[j1-i-1]==t.t_f2[j2-i-1]){t.t_f1.erase(j1-1-i);t.t_f2.erase(j2-i-1);j1--;j2--;}returnt;}boolsame(conststringf1,conststringf2);//判断两个公式是否相同stringchange(stringf,Transf
4、ormt);//用代换q对公式f进行合一代换boollegal(Transform&t);//intvar(conststrings);//s中每个()内的子串是变量还是常量voidshow();//最终演示算法};boolSyncretism::Issyn(stringf1,stringf2,vector&lan){while(!same(f1,f2)){Transformt=different(f1,f2);boolflag=legal(t);if(!flag)retu
5、rnfalse;else{lan.push_back(t);//将t加入vectorlan中if(flag){f1=change(f1,lan.back());//用lan的最后一个元素代换f2=change(f2,lan.back());cout<<"变换后:"<6、tstringf1,conststringf2){if(f1.compare(f2)==0)returntrue;elsereturnfalse;}stringSyncretism::change(stringf,Transformt){inti=f.find(t.t_f2);while(i7、tism::legal(Transform&t){if(t.t_f1.length()==08、9、t.t_f2.length==0)returnfalse;elseif(var(t.t_f1)==010、11、var(t.t_f2)==0)returnfalse;elseif(var(t.t_f1)==1&&var(t.t_f2)==1&&t.t_f1.compare(t.t_f2)!=0)returnfalse;elseif(var(t.t_f1)==2){if(var(t.t_f2)==1){stri12、ngtemp=t.t_f1;//变量常量交换位置t.t_f1=t.t_f2;t.t_f2=temp;}else{inti1=var(t.t_f2);i1=iC;iC=0;inti2=var(t.t_f1);i2=iC;if(i1
6、tstringf1,conststringf2){if(f1.compare(f2)==0)returntrue;elsereturnfalse;}stringSyncretism::change(stringf,Transformt){inti=f.find(t.t_f2);while(i7、tism::legal(Transform&t){if(t.t_f1.length()==08、9、t.t_f2.length==0)returnfalse;elseif(var(t.t_f1)==010、11、var(t.t_f2)==0)returnfalse;elseif(var(t.t_f1)==1&&var(t.t_f2)==1&&t.t_f1.compare(t.t_f2)!=0)returnfalse;elseif(var(t.t_f1)==2){if(var(t.t_f2)==1){stri12、ngtemp=t.t_f1;//变量常量交换位置t.t_f1=t.t_f2;t.t_f2=temp;}else{inti1=var(t.t_f2);i1=iC;iC=0;inti2=var(t.t_f1);i2=iC;if(i1
7、tism::legal(Transform&t){if(t.t_f1.length()==0
8、
9、t.t_f2.length==0)returnfalse;elseif(var(t.t_f1)==0
10、
11、var(t.t_f2)==0)returnfalse;elseif(var(t.t_f1)==1&&var(t.t_f2)==1&&t.t_f1.compare(t.t_f2)!=0)returnfalse;elseif(var(t.t_f1)==2){if(var(t.t_f2)==1){stri
12、ngtemp=t.t_f1;//变量常量交换位置t.t_f1=t.t_f2;t.t_f2=temp;}else{inti1=var(t.t_f2);i1=iC;iC=0;inti2=var(t.t_f1);i2=iC;if(i1
此文档下载收益归作者所有