![實驗二 王浩算法的實現(xiàn)_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/16/d7bb7d20-c88e-4767-aa1b-f8b7ec7ccaaa/d7bb7d20-c88e-4767-aa1b-f8b7ec7ccaaa1.gif)
![實驗二 王浩算法的實現(xiàn)_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/16/d7bb7d20-c88e-4767-aa1b-f8b7ec7ccaaa/d7bb7d20-c88e-4767-aa1b-f8b7ec7ccaaa2.gif)
![實驗二 王浩算法的實現(xiàn)_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/16/d7bb7d20-c88e-4767-aa1b-f8b7ec7ccaaa/d7bb7d20-c88e-4767-aa1b-f8b7ec7ccaaa3.gif)
![實驗二 王浩算法的實現(xiàn)_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/16/d7bb7d20-c88e-4767-aa1b-f8b7ec7ccaaa/d7bb7d20-c88e-4767-aa1b-f8b7ec7ccaaa4.gif)
![實驗二 王浩算法的實現(xiàn)_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/16/d7bb7d20-c88e-4767-aa1b-f8b7ec7ccaaa/d7bb7d20-c88e-4767-aa1b-f8b7ec7ccaaa5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、實驗二 王浩算法的實現(xiàn)一 實驗?zāi)康模菏炀氄莆彰}邏輯中的王浩算法。二 實驗內(nèi)容實現(xiàn)命題邏輯框架內(nèi)的王浩算法。 將命題邏輯中的王浩算法推廣至下述命題語言的情形之下: 命題變量符號:, 邏輯連接符:, 間隔符:, 在上述中所定義的命題語言中實現(xiàn)王浩算法。三 程序功能:輸入命題邏輯公式,程序?qū)⒆詣舆M(jìn)行推理,并判斷公式的真假性。四 主要數(shù)據(jù)結(jié)構(gòu)(1)term類:用于存放推理過程中的邏輯連接符和間隔符。(2)wanghao類:用于完成整個推理過程。五 主要函數(shù)功能,參數(shù)說明(1)main():程序的入口函數(shù),無參數(shù)傳遞。(2)input():功能:從屏幕上讀入命題邏輯公式,并將其存入數(shù)組和term里(3
2、)simple():功能:對輸入的公式進(jìn)行化簡,將, - & | 消去,全部轉(zhuǎn)換成原子,或原子的非。=左部的逗號代表與,右邊的逗號代表或。規(guī)則:p-q p|q(4)reason():功能:對公式進(jìn)行推理,推理規(guī)則為:若p,q=x,r,則p,x,q=r.若p,x=q,r,則p=q,x,r若p,x,q=r且p,y,q=r,則p,(x-y),q=r若p=q,x,y,r且q=q,(x-y),r(5)move():功能:移動等式左右兩邊的原子。=左邊含有原子或公式的否定,則移到右邊并取反。同理,右邊含有原子或公式的否定,則移到左邊并取反。最終使左右兩邊都只含有原子。(6)judge():功能:判斷公式是
3、否恒真,通過判斷最終等式兩邊是否含有相同的元素來判斷是否恒真。(7)output():功能:輸出邏輯公式六編程過程中遇到的問題及解決方案1.符號的存儲:再輸入過程中區(qū)分符號和字母很困難,而且不容易存儲,為此引入了term類,類中有符號和字母兩個變量,分別用于存放符號和字母。當(dāng)遇到,-,&,|,和符號,含有&的公式放在=左部,&用逗號表示,含有|的公式放在=右部,|用逗號表示,按照下列規(guī)則移動=左右兩邊的原子或公式,最終消去,化成只含有原子的公式。若p,q=x,r,則p,x,q=r.若p,x=q,r,則p=q,x,r若p,x,q=r且p,y,q=r,則p,(x-y),q=r若p=q,x,y,r且
4、q=q,(x-y),r3.判別:=左右含有相同的原子,則公式恒真。七測試輸入公式(a-(b-c)-(a-b)-(a-c),運行結(jié)果為:程序代碼:import java.io.bufferedreader;import java.io.inputstreamreader;import java.io.ioexception;import java.util.vector;/設(shè)置term類,用于存儲輸入的公式和推倒過程中的公式class term char fuhao;char zimu;term (char fuhao,char zimu) this.fuhao = fuhao;this.zim
5、u = zimu;term()public string tostring() if(fuhao = $)return string.valueof(zimu);else return string.valueof(fuhao)+string.valueof(zimu);public class wanghao vector left = new vector();vector right = new vector();/輸入公式,并將其存入term類的數(shù)組中public void input() bufferedreader br = new bufferedreader(new input
6、streamreader(system.in);string words = new string();system.out.println(請輸入公式行: (例如: a-(b&c)|ab );trywords = br.readline();catch(ioexception e)system.out.println(input error);system.exit(0);char ch = words.tochararray();for(int i = 0 ; i ch.length ; i +) if(chi = | chi = - | chi = & | chi = |) term t
7、 = new term();t.fuhao = chi+;t.zimu = chi;right.add(t);else if(chi = ) term t = new term();t.fuhao = chi+;t.zimu = chi+;right.add(t);else term t = new term();t.fuhao = $;t.zimu = chi;right.add(t);/輸出公式的函數(shù)public void output() for(int i=0;ileft.size();i+)system.out.print(left.elementat(i).tostring();i
8、f(left.elementat(i).fuhao = );system.out.print(=);for(int i=0;iright.size();i+)system.out.print(right.elementat(i).tostring();if(right.elementat(i).fuhao = );system.out.println();/化簡公式,將-,消去 ,并把&,|用逗號表示,=左邊為&,右邊為|public void simple() for(int i = 0;i right.size();i+) if(right.elementat(i).fuhao != &
9、& right.elementat(i).fuhao != | & right.elementat(i).fuhao != = 0;j-)if(right.elementat(j).zimu = )count+;else if(right.elementat(j).zimu = ()count-;if(count = 0)right.add(j, new term(,();break;i+;right.elementat(i).fuhao = -;right.elementat(i).zimu = ;if(right.elementat(i+1).fuhao = )right.elementa
10、t(i+1).fuhao=$;else right.elementat(i+1).fuhao=;for(int j = i+1;j right.size();j+)if(right.elementat(j).zimu = ()count+;else if(right.elementat(j).zimu = )count-;if(count = 0)if(j+1 = 0;j-)if(right.elementat(j).zimu = )count+;else if(right.elementat(j).zimu = ()count-;if(count = 0)if(right.elementat
11、(j).fuhao = )right.elementat(j).fuhao=$;else right.elementat(j).fuhao=;right.add(j, new term($,();break;i+;right.elementat(i).fuhao = -;right.elementat(i).zimu = ;for(int j = i+1;j right.size();j+)if(right.elementat(j).zimu = ()count+;else if(right.elementat(j).zimu = )count-;if(count = 0)if(j+1 rig
12、ht.size()right.add(j+1, new term($,);else right.add(new term($,);break;else if(right.elementat(i).fuhao = ) vector l = new vector();vector r = new vector();int j=i-1;int count =0;while(j=0)if(right.elementat(j).zimu = )count+;else if(right.elementat(j).zimu = ()count-;l.add(0,right.elementat(j);righ
13、t.removeelementat(j);j-;i-;if(count = 0)break;j=i+1;while(jright.size()if(right.elementat(j).zimu = ()count+;else if(right.elementat(j).zimu = )count-;r.add(right.elementat(j);right.removeelementat(j);if(count = 0)break;right.removeelementat(i);right.add(i+, new term(,();right.add(i+, new term($,();
14、j=0;while(j);j=0;while(j);right.add(i+, new term(,();j=0;while(j);j=0;while(jl.size()right.add(i+,l.elementat(j+);right.add(i+,new term($,);right.add(i+,new term($,);i-;output();public void reason()for(int i = 0;i = 0;j-)if(right.elementat(j).zimu = )count+;else if(right.elementat(j).zimu = ()count-
15、;if(count = 0)if(right.elementat(j).fuhao = )right.elementat(j).fuhao = $;else if(right.elementat(j).fuhao = $)right.elementat(j).fuhao = ;break;output();move(0,0);/左右兩邊移動原子或公式,移動過程中取反public void move(int l,int r) int le,ri;for(le=0;le= a) & (left.elementat(le).zimu = a) & (left.elementat(le).zimu =
16、 z) | left.elementat(le).zimu = ,)continue;else break;for(ri=0;ri= a) & (right.elementat(ri).zimu = a) & (right.elementat(ri).zimu = z) | right.elementat(ri).zimu = ,)continue;else break;if(le = left.size() & (ri = right.size()return;if(r right.size() & right.elementat(r).fuhao = ) int count = 0,loc
17、 = 0;right.elementat(r).fuhao = $;if(right.elementat(r).zimu != ()if(r = 0) left.add(loc+, right.elementat(r);left.add(loc+, new term($,);else if(left.size() != 0)left.add(new term($,);left.add(right.elementat(r);right.removeelementat(r);if(!right.isempty()right.removeelementat(r);else right.removee
18、lementat(r);count+;if(left.size() != 0)left.add(new term($,);while(true) if(right.elementat(r).zimu = ()count+;else if(right.elementat(r).zimu = )count-;if(count = 0) if(r = 0)left.add(loc+, new term($,);right.removeelementat(r);if(!right.isempty()right.removeelementat(r);break;if(r = 0)left.add(loc
19、+, right.elementat(r);else left.add(right.elementat(r);right.removeelementat(r);else if(r right.size() & right.elementat(r).zimu = () int count=1;right.removeelementat(r);while(true) if(right.elementat(r).zimu = ()count+;else if(right.elementat(r).zimu = )count-;if(count = 0) right.removeelementat(r
20、);break;r+;while(left.size() != 0 & left.elementat(left.size()-1).zimu = ,)left.removeelementat(left.size()-1);if(l left.size() & left.elementat(l).fuhao = ) int count = 0,loc = 0;left.elementat(l).fuhao = $;if(left.elementat(l).zimu != ()if(l = 0) right.add(loc+, left.elementat(l);right.add(loc+, n
21、ew term($,);else if(right.size() != 0)right.add(new term($,);right.add(left.elementat(l);left.removeelementat(l);if(!left.isempty()left.removeelementat(l);else left.removeelementat(l);count+;if(right.size() != 0)right.add(new term($,);while(true) if(left.elementat(l).zimu = ()count+;else if(left.elementat(l).zimu = )count-;if(count = 0) if(l = 0)right.add(loc+, new term($,);left.removeelementat(l);if(!lef
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年疾病預(yù)防控制及防疫服務(wù)合作協(xié)議書
- 2025魯教版初中英語六年級下全冊單詞默寫(復(fù)習(xí)必背)
- 人教版 八年級英語下冊 Unit 9 單元綜合測試卷(2025年春)
- 房屋代持協(xié)議書范本-決議-
- 2025年個人房屋租房協(xié)議(三篇)
- 2025年個人工程承包合同標(biāo)準(zhǔn)范文(2篇)
- 2025年產(chǎn)品開發(fā)委托合同標(biāo)準(zhǔn)版本(三篇)
- 2025年九年級下學(xué)期體育教師工作總結(jié)模版(二篇)
- 2025年二手挖掘機(jī)轉(zhuǎn)讓協(xié)議模板(三篇)
- 2025年臨海市農(nóng)產(chǎn)品基地種植收購協(xié)議(三篇)
- 人輪狀病毒感染
- 兒科護(hù)理學(xué)試題及答案解析-神經(jīng)系統(tǒng)疾病患兒的護(hù)理(二)
- 《石油產(chǎn)品分析》課件-車用汽油
- 15篇文章包含英語四級所有詞匯
- 王陽明心學(xué)完整版本
- 四年級上冊豎式計算300題及答案
- 保潔班長演講稿
- 課題研究實施方案 范例及課題研究方法及技術(shù)路線圖模板
- 牙髓炎中牙髓干細(xì)胞與神經(jīng)支配的相互作用
- 勞務(wù)雇傭協(xié)議書范本
- 【2022屆高考英語讀后續(xù)寫】主題升華積累講義及高級句型積累
評論
0/150
提交評論