人工智能-合一算法(C)_第1頁
人工智能-合一算法(C)_第2頁
人工智能-合一算法(C)_第3頁
人工智能-合一算法(C)_第4頁
人工智能-合一算法(C)_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、文檔來源為 :從網(wǎng)絡(luò)收集整理.word 版本可編輯.歡迎下載支持人工智能第1次作業(yè)一般合一算法(C+候現(xiàn))姓名:佟學(xué)號:201224班級:12計本非師學(xué)院:信息學(xué)院一、簡單程序如下#include<iostream>#include<string>#include<vector>usingnamespacestd;intiC=0;/標(biāo)記公式集中括號匹配數(shù)classSyncretismprivate:structTransform/一個代換(差異集)stringt_f1;stringt_f2;public:boolIssyn(stringf1,stringf2

2、,vector<Transform>&t);/是否能合一Transformdifferent(conststringf1,conststringf2)/求差異集inti=0;Transformt;while(f1.at(i)=f2.at(i)i+;intj1=i;while(j1<f1.length()-1&&f1.at(j1)!=',')j1+;if(j1-i=0)returnt;t.t_f1=f1.substr(i,j1-i);intj2=i;while(j2<f2.length()-1&&f2.at(j2)!

3、=',')j2+;if(j2-i=0)returnt;t.t_f2=f2.substr(i,j2-i);while(t.t_f1j1-i-1=t.t_f2j2-i-1)t.t_f1.erase(j1-1-i);t.t_f2.erase(j2-i-1);j1-;j2-;returnt;boolsame(conststringf1,conststringf2);/判斷兩個公式是否相同stringchange(stringf,Transformt);/用代換q對公式f進(jìn)行合一代換boollegal(Transform&t);/intvar(conststrings);/s中每

4、個()內(nèi)的子串是變量還是常量voidshow();/最終演示算法;boolSyncretism:Issyn(stringf1,stringf2,vector<Transform>&lan)while(!same(f1,f2)Transformt=different(f1,f2);boolflag=legal(t);if(!flag)returnfalse;elselan.push_back;將t加入vecto門an中if(flag)f1=change(f1,lan.back();/用lan的最后一個元素代換f2=change(f2,lan.back();cout<&l

5、t;"變換后:"<<endl;cout<<"f1:"<<f1<<endl;cout<<"f2:"<<f2<<endl<<endl;if(same(f1,f2)break;returntrue;boolSyncretism:same(conststringf1,conststringf2)if(pare(f2)=0)returntrue;elsereturnfalse;stringSyncretism:change(stringf,Trans

6、formt)inti=f.find(t.t_f2);while(i<f.length()i=f.find(t.t_f2);if(i<f.length()f=f.replace(i,t.t_f2.length(),t.t_f1);returnf;boolSyncretism:legal(Transform&t)if(t.t_f1.length()=0|t.t_f2.length=0)returnfalse;elseif(var(t.t_f1)=0|var(t.t_f2)=0)returnfalse;elseif(var(t.t_f1)=1&&var(t.t_f

7、2)=1&&t.t_pare(t.t_f2)!=0)returnfalse;elseif(var(t.t_f1)=2)if(var(t.t_f2)=1)stringtemp=t.t_f1;/變量常量交換位置t.t_f1=t.t_f2;t.t_f2=temp;elseinti1=var(t.t_f2);i1=iC;iC=0;inti2=var(t.t_f1);i2=iC;if(i1<i2)stringtemp=t.t_f1;/變量常量交換位置t.t_f1=t.t_f2;t.t_f2=temp;returntrue;elsereturntrue;intSyncretism:v

8、ar(conststrings)常量if(s.length()=0)return0;/空if(s.length()=1&&s0>='a'&&s0<='g')return1;/if(s.length()>1)inti=0;while(i<s.length()&&s.at(i)!='(')6 文檔來源為:從網(wǎng)絡(luò)收集整理.word 版本可編輯.i+;iC+;stringss=s.substr(i+1,s.length()-i-2);/抽取s中的匹配的()中的子串returnvar(

9、ss);elsereturn2;voidSyncretism:show()cout<<"常量:形如a,b,c,d(a-g)等"<<endl<<"變量:形如x,y,z,u等"<<endl;stringf1,f2;cout<<"輸入F1:"cin>>f1;cout<<"輸入F2:"cin>>f2;vector<Transform>lan;if(Issyn(f1,f2,lan)if(same(f1,f2)如果f1,

10、f2相同則合一為£cout<<"合一0-=£"<<endl;return;cout<<"合一o-="for(inti=0;i<lan.size()-1;i+)cout<<lani.t_f1<<"/"<<lani.t_f2<<","cout<<lani.t_f1<<"/"<<lani.t_f2<<""<<end

11、l;elsecout<<"不能進(jìn)行合一"<<endl;intmain()SyncretismSy;Sy.show();return0;二、演示結(jié)果三、程序的實現(xiàn)Transform中的t_f1,t_f2分別表示差異集中的兩個字符串。Vector變量lan存放合一的集合。函數(shù)功能Issyn()判斷兩個公式是否相同。different()求差異集。change()用代換對公式進(jìn)行合一代換。legal()t_f1,t_f2判斷然后對換并判斷是否為合一字符串same()判斷兩個公式是否相同。var()字符串每個()內(nèi)的子串是變量還是常量。show()最終演示算法函數(shù)。四、具體程序執(zhí)行程序執(zhí)行時先輸入公式集中的公式然后調(diào)用Issyn函數(shù)判斷是否能合一如果不能則退出,如果能判斷公式是否相

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論