安徽工業(yè)大學離散數(shù)學實驗報告_第1頁
安徽工業(yè)大學離散數(shù)學實驗報告_第2頁
安徽工業(yè)大學離散數(shù)學實驗報告_第3頁
安徽工業(yè)大學離散數(shù)學實驗報告_第4頁
安徽工業(yè)大學離散數(shù)學實驗報告_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、離散數(shù)學實驗報告專業(yè)軟件工程班級163班姓名周掌珍學號169074261授課教師楊思春二O一七年六月目 錄實驗一聯(lián)結詞的運算實驗二集合的運算實驗三二元關系的性質(zhì)判定實驗四圖的矩陣運算實驗一聯(lián)結詞的運算一實驗目的通過上機實驗操作,將命題連接詞運算融入到C 語言的程序編寫中,一方面加強對命題連接詞運算的理解,另一方面通過編程實現(xiàn)命題連接詞運算,幫助學生復習和鍛煉C語言知識,將理論知識與實際操作結合,讓學生更加容易理解和記憶命題連接詞運算。二實驗原理(1)非運算,符號:, 當P=T時,P為F,當P=F時,P為T。(2) 合取 , 符號 : , 當且僅當 P 和 Q的真值同為真,命題 P Q的真值才為

2、真;否則, P Q的真值為假。(3) 析取 , 符號 : , 當且僅當 P 和 Q的真值同為假,命題 P Q的真值才為假;否則, P Q的真值為真。(4) 異或 , 符號 : , 當且僅當 P 和 Q的真值不同時,命題 P Q的真值才為真;否則, P Q的真值為真。(5) 蘊涵 , 符號 : , 當且僅當 P 為 T,Q 為 F 時,命題 P Q的真值才為假; 否則,P Q的真值為真。(6)等價 ,符號 : ?,當且僅當P,Q 的真值不同時,命題P? Q的真值才為假;否則,P Q的真值為真。三實驗內(nèi)容編寫一個程序?qū)崿F(xiàn)非運算、合取運算、析取運算、異或運算、蘊涵運算、等價運算。四算法程序內(nèi)容格式:

3、新羅馬,小五號,行間距固定值18 磅#include<stdio.h>int main()char m;int P,Q;printf(" 請輸入 P,Q 的真值與邏輯連接詞:(P 邏輯聯(lián)結Q)na:與 tb: 或tc(請先輸入0):非td: 蘊含 te:等價tf: 異或 n");scanf("%d%c%d",&P,&m,&Q);switch(m)case 'a':if(P=1&&Q=1) printf("P與 Q=1n");else printf("p 合取

4、 Q=0n");break;case 'b':if(P=0&&Q=0) printf("P或 Q=0n");else printf("P 或 Q=1n");break;case 'c':if(P=1) printf(" 非 P=0n");else printf(" 非 P=1n");break;case 'd':if(P=1&&Q=0) printf("P蘊含 Q=0n");else printf(&quo

5、t;P 蘊含 Q=1n");break;case 'e':if(P=Q) printf("P等價 Q=1n");else printf("P 等價 Q=0n");break;case 'f':if(P=Q) printf("P異或 Q=0n");else printf("P 異或 Q=1n");break;五實驗結果實驗結果截圖大小為:寬(10cm)×高( 8cm)六心得體會內(nèi)容格式:宋體,五號,行間距固定值18 磅實驗二集合的運算一實驗目的集合運算主要包括并運算

6、,交運算,相對差,對稱差運算,集合論的語言適合于描述和研究離散對象及其關系,所以也是計算機科學與工程的理論基礎,在程序設計、關系數(shù)據(jù)庫、排隊論、開關理論,形式語言和自動機理論等學科領域中都有重要的應用。集合運算是學習集合論的基礎,通過編程實現(xiàn)集合的相關運算,幫助同學們學好集合論相關知識打下基礎。二實驗原理交運算:任何二個集合A 和 B 的交集 AB是由 A 和 B 所共有的全部元素構成的集合,即: AB=x | xA xB并運算: A、B 是任意二個集合, A 和 B 的并集 AB是由 A 和 B 的所有元素構成的集合。即: AB=x xAx B相對差:設A 和 B 是二個任意集合,B 對 A

7、 的相對差( A-B)是由屬于A 且不屬于B 的所有元素組成的集合。即:A-B= xx Ax B=x x AxB對稱差:設A、 B 是任意二集合,A 和 B 的環(huán)和記作AB。即:AB=(A- B)(B - A)=(AB)(BA)或者 x(AB)xx |xA xB三實驗內(nèi)容深入理解集合的四種基本運算,根據(jù)每個運算定義,編程實現(xiàn)各個運算。四算法程序內(nèi)容格式:新羅馬,小五號,行間距固定值18 磅交集運算 :#include<stdio.h>int main()int a10,b10,c20,i,m,n,j,k=0;printf(" 請輸入集合A ,集合 B 中的元素個數(shù) :n&

8、quot;);scanf("%d%d",&m,&n);printf(" 請輸入集合A 的元素 :n");for(i=0;i<m;i+)scanf("%d",&ai);printf(" 請輸入集合B 的元素 :n");for(i=0;i<n;i+)scanf("%d",&bi);printf("A= ");for(i=0;i<m;i+)printf("%d,",ai);putchar('b')

9、;printf("n");printf("B= ");for(i=0;i<n;i+)printf("%d,",bi);putchar('b');printf("n");for(i=0;i<m;i+)for(j=0;j<n;j+)if(ai=bj) ck+=ai;printf("A B= ");for(i=0;i<k;i+)printf("%d,",ci);putchar('b');printf("n"

10、);并集運算:#include<stdio.h>int main()int a10,b10,c20,i,m,n,j,k=0;printf(" 請輸入集合A ,集合 B 中的元素個數(shù) :n");scanf("%d%d",&m,&n);printf(" 請輸入集合A 的元素 :n");for(i=0;i<m;i+)scanf("%d",&ai);printf(" 請輸入集合B 的元素 :n");for(i=0;i<n;i+)scanf("%d

11、",&bi);printf("A= ");for(i=0;i<m;i+)printf("%d,",ai);putchar('b');printf("n");printf("B= ");for(i=0;i<n;i+)printf("%d,",bi);putchar('b');printf("n");for(i=0;i<m;i+)ck+=ai;for(j=0;j<n;j+)for(i=0;i<m;i+

12、)if(bj=ci) break;if(i=m) ck+=bj;printf("A B= ");for(i=0;i<k;i+)printf("%d,",ci);putchar('b');printf("n");相對差:#include<stdio.h>int main()int a10,b10,c20,i,m,n,j,k=0,t;printf(" 請輸入集合A ,集合 B 中的元素個數(shù) :n");scanf("%d%d",&m,&n);print

13、f(" 請輸入集合A 的元素 :n");for(i=0;i<m;i+)scanf("%d",&ai);printf(" 請輸入集合B 的元素 :n");for(i=0;i<n;i+)scanf("%d",&bi);printf("A= ");for(i=0;i<m;i+)printf("%d,",ai);putchar('b');printf("n");printf("B= ");for

14、(i=0;i<n;i+)printf("%d,",bi);putchar('b');printf("n");for(i=0;i<m;i+)ck+=ai;for(j=0;j<n;j+)for(i=0;i<m;i+)if(bj=ci)for(t=i;t<k;t+)ct=ct+1;k-;printf("A-B= ");for(i=0;i<k;i+)printf("%d,",ci);putchar('b');printf("n");對稱

15、差:#include<stdio.h>int main()int a10,b10,c20,c120,c220,i,m,n,j,k1=0,k2=0,k=0,t;printf(" 請輸入集合scanf("%d",&bi);printf("A= ");for(i=0;i<m;i+)printf("%d,",ai);putchar('b');printf("n");printf("B= ");for(i=0;i<n;i+)printf("

16、;%d,",bi);putchar('b');printf("n");for(i=0;i<m;i+)c1k1+=ai;for(j=0;j<n;j+)for(i=0;i<m;i+)if(bj=c1i)for(t=i;t<k1;t+)c1t=c1t+1;k1-;for(j=0;j<n;j+)c2k2+=bj;for(j=0;j<m;j+)for(i=0;i<n;i+)if(aj=c2i)for(t=i;t<k2;t+)c2t=c2t+1;k2-;for(i=0;i<k1;i+)ck+=c1i;for

17、(j=0;j<k2;j+)for(i=0;i<k1;i+)if(c2j=ci) break;if(i=k1) ck+=c2j;printf("A B= ");for(i=0;i<k;i+)printf("%d,",ci);putchar('b');printf("n");五實驗結果實驗結果截圖大小為:寬(10cm)×高( 8cm)交集運算:并集運算相對差運算對稱差運算六心得體會內(nèi)容格式:宋體,五號,行間距固定值18 磅實驗三二元關系的性質(zhì)判定一實驗目的二元關系是離散數(shù)學中的一個重要的基本概念

18、 , 定義在某一集合上的二元關系有自反性、反自反性、對稱性、反對稱性和傳遞性,二元關系的性質(zhì)是學習特殊二元關系的基礎,通過編程判斷二元關系的性質(zhì),幫助同學們更好地理解二元關系相關性質(zhì)定義。二實驗原理自反性質(zhì):設R 是 X 集合上的二元關系,對于每一個xX, 若有 xRx,則稱 R是自反關系。反自反性質(zhì):設R 是 X 上的二元關系,對于每一個xX,有 xRx,則稱 R 有反自反的關系。對稱性質(zhì):設R是X 上的二元關系,對于每一個x,y X。若xRy 時有yRx,則稱R 是對稱關系。則稱反對稱性質(zhì):設 R 是 X 集合上的二元關系, 對于每一個 R 是反對稱關系。<x,y> R(x y

19、),若 <y,x> R ,傳遞性質(zhì):設R 為定義在集合X 上的二元關系,如果對于任意的x,y,z X,每當xRy,yRz 時就有 xRz,稱關系R 在 X上是傳遞的。三實驗內(nèi)容編程輸入一個集合以及該集合上的一種二元關系,判斷該二元關系具有哪些性質(zhì)。四算法程序內(nèi)容格式:新羅馬,小五號,行間距固定值18 磅#include<stdio.h>int m,n,i,j,k;int X20,R20;void zifan()k=0;for(i=0;i<m;i+)for(j=0;j<2*n;j=j+2)if(Rj=Rj+1&&Rj=Xi) k+;if(k=m

20、) printf("R具有自反性 n");if(k=0) printf("R具有反自反性 n");void duichen()k=0;for(j=0;j<2*n;j=j+2)for(i=0;i<2*n;i=i+2)if(Rj=Ri+1&&Rj+1=Ri) k+;if(k=n) printf("R具有對稱性n");if(k=0) printf("R具有反對稱性n");void chuandi()int s;for(j=0;j<2*n;j=j+2)for(i=0;i<2*n;i=

21、i+2)if(Rj+1=Ri)k=0;for(s=0;s<2*n;s=s+2)if(Rs=Rj&&Rs+1=Ri+1) k+;if(k=0) return 0;if(j=2*n) printf("R具有傳遞性 n");int main()printf(" 請輸入集合 X 中的元素個數(shù)和關系 R 中的序偶個數(shù) :n"); scanf("%d%d",&m,&n);printf(" 請輸入集合X:n");for(i=0;i<m;i+)scanf("%d",X

22、+i);printf(" 請輸入關系R:(每兩個連續(xù)輸入的數(shù)是一個序偶!)n");for(i=0;i<2*n;i+)scanf("%d",R+i);printf(" 集合 X:nX= ");for(i=0;i<m;i+)printf("%d,",Xi);printf("bn");printf(" 關系 R:nR= ");for(i=0;i<2*n;i=i+2)printf("<%d,%d>,",Ri,Ri+1);printf(

23、"bn");zifan();duichen();chuandi();五實驗結果實驗結果截圖大小為:寬(10cm)×高( 8cm)六心得體會內(nèi)容格式:宋體,小五號,行間距固定值18 磅實驗四圖的矩陣運算一實驗目的圖形的矩陣包括鄰接矩陣、可達矩陣和關聯(lián)矩陣,它們描述了一個圖形節(jié)點與邊之間的關系。可達矩陣表明了圖中任何兩個不同的結點之間是否存在至少一條道路,以及在任何結點處是否存在著回路??蛇_性矩陣是判別一個有向圖是否為強連通圖或弱連通圖的有效工具,通過編程實現(xiàn)圖形的矩陣,幫助同學們掌握圖形矩陣生成方法。二實驗原理定義設 G = (V , E) 是圖,節(jié)點集合已編號V

24、= v1 , v2 , , vn ,則 G的鄰接矩陣A(G)=(a ij ) n×n中元素 aij 表示為:1若 vi ,v j Eaij若 vi , vj E0定義 設 G = (V ,E) 是無向圖,節(jié)點集合和邊集合均已編號V = v 1, v2, , vn , E= e , e , , e ,則 G的關聯(lián)矩陣 M( G)mijnm 中元素 m 為12mij1, v i 是 ej 的起點m1, vi 是ej 的終點, i = 1 , 2, , n; j = 1, 2 , , m。ij0, v i 與 ej 不關聯(lián)定義設 G=( V, E)是一個 n 階的有向簡單圖,Vv1 , v

25、2 , ,vn 。定義矩陣P ( pi j )n n ,其中1,從vi 到v j存在非零的有向道路 ,pij其它,0,稱 P 是圖 G的可達矩陣。求可達矩陣可以先構造A, A2 , , An ,再構造 Bn A A2An ,最后利用關系1,若 b ( n),ij0pij若 b ( n),0,tj0確定 P 的元素 pij 從而構造出 P。顯然,這種先求 A , A2 , A3, An , Bn 再構造 P 的方法很費事。如果我們把鄰接矩陣A 當作關系矩陣,那么求可達矩陣就相當于求A 的傳遞閉包,因此可以仿照集合論中求關系的傳遞閉包的辦法,求可達矩陣P。三實驗內(nèi)容通過編程,將圖形的鄰接矩陣、關聯(lián)

26、矩陣、可達矩陣表示出來。四算法程序內(nèi)容格式:新羅馬,小五號,行間距固定值18 磅鄰接矩陣:#include<stdio.h>main()int a44,i,j;for(i=0;i<4;i+)for(j=0;j<4;j+)scanf("%d",&aij);for(i=0;i<4;i+)for(j=0;j<4;j+)printf("%d",aij);printf("n");for(i=0;i<4;i+)for(j=0;j<4;j+)if(aij=aji) break;printf(" 該矩陣是鄰接矩陣!");關聯(lián)矩陣:#include "stdio.h"int main()int i,j,n,m,a1010;printf(" 輸入該矩陣為幾個點:n");scanf("%d",&n);printf(" 輸入該矩陣為幾條邊:n");scanf("%d",&m);printf(" 輸入點與邊之間的關系,有關系起點為1,終點為 -1,沒有關系為0: n&quo

溫馨提示

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

評論

0/150

提交評論