版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
-1-《離散數(shù)學(xué)》實驗報告學(xué)院軟件學(xué)院專業(yè)計算機科學(xué)與技術(shù)指導(dǎo)教師劉冰學(xué)號11999008姓名曹春亭提交日期2012-12-9實驗一連結(jié)詞邏輯運算一.實驗?zāi)康膶崿F(xiàn)二元合取、析取、蘊涵和等價表達(dá)式的計算。熟悉連接詞邏輯運算規(guī)則,利用程序語言實現(xiàn)邏輯這幾種邏輯運算。二.實驗內(nèi)容從鍵盤輸入兩個命題變元P和Q的真值,求它們的合取、析取、蘊涵和等價四種運算的的真值。要求對輸入內(nèi)容進(jìn)行分析,如果不符合0、1條件需要重新輸入,程序有良好的輸入輸出界面。三.實驗過程1.算法分析:程序采用java語言,以‘/\’表示合取,以‘\/’表示析取,以‘->’表示蘊含,以‘‘表示等價,用多重選擇判斷句分別實現(xiàn)功能。2.程序代碼: importstaticjava.lang.System.*;importjava.util.*;publicclassLogicOperation{ publicstaticvoidmain(Stringargs[]) { Scannerin=newScanner(System.in); booleanstate=true; while(state) { Operatione=newOperation(); e.dataInput(); e.logicJudge(); out.println("是否繼續(xù)進(jìn)行運算?(y(Y)/n(N))"); Strings=in.nextLine(); if(s.charAt(0)=='n'||s.charAt(0)=='N') state=false; } }}classOperation{ Scannerin=newScanner(System.in); privatebooleanstate=true; privatebooleanm; privatebooleann; Operation() { } publicvoiddataInput() { out.println("歡迎使用邏輯運算程序"); out.println("請輸入你要進(jìn)行邏輯運算的兩個值(0或1),以回車確認(rèn)。"); intp,q; out.print("p="); p=in.nextInt(); out.print("q="); q=in.nextInt(); while(state) { if((p==0||p==1)&&(q==0||q==1)) { state=false; if(p==1) m=true; else m=false; if(q==1) n=true; else n=false; } else { out.println("您輸入的數(shù)據(jù)不合法,請從新輸入:"); out.print("p="); p=in.nextInt(); out.print("q="); q=in.nextInt(); } } } publicvoidlogicJudge() { if(m==n)//計算合取表達(dá)式 { if(m==true) out.println("合取:p/\\q=1"); else out.println("合?。簆/\\q=0"); } else out.println("合取:p/\\q=0"); if(m==true||n==true)//計算析取表達(dá)式 out.println("析?。簆\\/q=1"); else out.println("析?。簆\\/q=0"); if(m==true&&n==false)//計算蘊含表達(dá)式 out.println("蘊含:p-》q=0"); else out.println("蘊含:p-》q=1"); if(m==n) out.println("恒等:p《-》q=1"); else out.println("恒等:p《-》q=0"); }}3.實驗數(shù)據(jù)及結(jié)果分析;
實驗二關(guān)系的閉包運算一、實驗?zāi)康氖煜りP(guān)系的閉包運算,編程實現(xiàn)關(guān)系閉包運算算法。一、實驗內(nèi)容利用矩陣求解有限集上給定關(guān)系的自反、對稱和傳遞閉包。三.實驗過程程序采用java語言,以二維數(shù)組表示矩陣。1.算法分析: 在三種閉包中自反和對稱閉包的求解很容易,對矩陣表示的關(guān)系,其自反閉包只要將矩陣的主對角線全部置為1就可;對稱閉包則加上關(guān)系的轉(zhuǎn)置矩陣(邏輯加法);傳遞閉包則有兩種算法(二選一即可):算法1:直接根據(jù)計算,過程略。算法2:Warshall算法(1962)設(shè)R的關(guān)系矩陣為M(1)令矩陣A=M(2)置i=1(3)對所有的j,若A[j,i]=1,則對于k=1,2,…,n,令A(yù)[j,k]=A[j,k]+A[i,k]注:此處為邏輯加,可以使用運算符||(4)i=i+l.(5)若i≤n,則轉(zhuǎn)到(3),否則結(jié)束.流程圖2.程序代碼: importstaticjava.lang.System.*;importjava.util.*;publicclassClosureOperation{ publicstaticvoidmain(Stringargs[]) { Scannerin=newScanner(System.in); Closuree=newClosure(); intz; out.println("請輸入你想計算的閉包:1為自反閉包,2為對稱閉包,3為傳遞閉包。"); out.print("z="); z=in.nextInt(); do { switch(z) { case1:e.reflexiveClosure();out.println("謝謝使用!");z=0;break; case2:e.symmetryClosure();out.println("謝謝使用!");z=0;break; case3:e.deliverClosure();out.println("謝謝使用!");z=0;break; default:out.println("您輸入的數(shù)據(jù)有誤,請輸入你想計算的閉包:1為自反閉包,2為對稱閉包,3為傳遞閉包。");out.print("z=");z=in.nextInt();if(z==0)z=-1; } }while(z!=0); }}classClosure{ Scannerin=newScanner(System.in); privateint[][]matrix; privateintdimension; Closure() { out.println("歡迎使用關(guān)系閉包運算"); out.println("請輸入矩陣的維數(shù)(最大不超過10)"); dimension=in.nextInt(); matrix=newint[dimension][dimension]; out.println("請輸入您的關(guān)系矩陣,標(biāo)準(zhǔn)輸入格式:"); out.println("1111"+"\n"+"0000"+"\n"+"1111"+"\n"+"0000"); for(inti=0;i<dimension;i++) { out.print("請輸入第"+(i+1)+"行的元素:"); for(intj=0;j<dimension;j++) matrix[i][j]=in.nextInt(); } } publicvoidreflexiveClosure() { inti=0,j=0; int[][]a=newint[dimension][dimension]; for(i=0;i<dimension;i++) for(j=0;j<dimension;j++) a[i][j]=matrix[i][j]; for(i=0,j=0;i<dimension;i++,j++) a[i][j]=1; out.println("所得的自反閉包關(guān)系矩陣:"); output(a); } publicvoidsymmetryClosure() { inti=0,j=0; int[][]a=newint[dimension][dimension]; for(i=0;i<dimension;i++) for(j=0;j<dimension;j++) a[i][j]=matrix[i][j]; int[][]b=newint[dimension][dimension]; for(i=0;i<dimension;i++) for(j=0;j<dimension;j++) b[j][i]=a[i][j]; for(i=0;i<dimension;i++) for(j=0;j<dimension;j++) { a[i][j]+=b[i][j]; if(a[i][j]==2) a[i][j]=1; } out.println("所得的對稱閉包關(guān)系矩陣:"); output(a); } publicvoiddeliverClosure() { inti=0,j=0,p=0; int[][]a=newint[dimension][dimension]; int[][]b=newint[dimension][dimension]; int[][]ends=newint[dimension][dimension]; for(i=0;i<dimension;i++) for(j=0;j<dimension;j++) a[i][j]=b[i][j]=ends[i][j]=matrix[i][j]; intsum=0; for(intm=0;m<dimension-1;m++) { for(i=0;i<dimension;i++) for(j=0;j<dimension;j++) { sum=0; for(p=0;p<dimension;p++) sum+=a[i][p]*matrix[p][j]; if(sum!=0) b[i][j]=1; else b[i][j]=0; } for(intx=0;x<dimension;x++) for(inty=0;y<dimension;y++) { a[x][y]=b[x][y]; } for(i=0;i<dimension;i++) for(j=0;j<dimension;j++) { ends[i][j]+=b[i][j]; if(ends
溫馨提示
- 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年鋼管加工定制合同
- 委托居間房屋買賣合同
- 《財政與金融(第2版)》 課件匯 趙立華 第8-16章 貨幣與貨幣制度-宏觀調(diào)控
- 2025年度個人留置車輛借款合同(二手車留置權(quán)解除與還款)4篇
- 二零二五年度文化旅游產(chǎn)業(yè)財產(chǎn)贈與合同范本3篇
- 2025年銷售員聘用協(xié)議書含銷售數(shù)據(jù)分析服務(wù)3篇
- 高科技裝備與新型材料在體育產(chǎn)業(yè)的應(yīng)用探索
- 二零二五年度新材料研發(fā)與應(yīng)用股權(quán)合作協(xié)議3篇
- 2025年度數(shù)據(jù)分析師個人雇傭勞動合同樣本4篇
- 二零二五年度誠意金支付及教育資源共享合作協(xié)議4篇
- 介入科圍手術(shù)期護(hù)理
- 體檢科運營可行性報告
- 青光眼術(shù)后護(hù)理課件
- 設(shè)立工程公司組建方案
- 設(shè)立項目管理公司組建方案
- 《物理因子治療技術(shù)》期末考試復(fù)習(xí)題庫(含答案)
- 退款協(xié)議書范本(通用版)docx
- 薪酬戰(zhàn)略與實踐
- 焊錫膏技術(shù)培訓(xùn)教材
- 江蘇省泰州市姜堰區(qū)2023年七年級下學(xué)期數(shù)學(xué)期末復(fù)習(xí)試卷【含答案】
- 答案之書(解答之書)-電子版精選答案
評論
0/150
提交評論