版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、南京工程學(xué)院實(shí) 驗(yàn) 報 告課程名稱 離散數(shù)學(xué) 實(shí)驗(yàn)項(xiàng)目名稱 集合論 實(shí)驗(yàn)學(xué)生班級 K網(wǎng)絡(luò)工程121 實(shí)驗(yàn)學(xué)生姓名 王云峰 學(xué)號 240121525 實(shí)驗(yàn)時間 11月8日 實(shí)驗(yàn)地點(diǎn) 信息樓 實(shí)驗(yàn)成績評定 指導(dǎo)教師簽字 年月日一、實(shí)驗(yàn)?zāi)康暮鸵蠹险撌且磺袛?shù)學(xué)的基礎(chǔ),也是計算機(jī)科學(xué)不可或缺的,在數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)庫理論、開關(guān)理論、自動機(jī)理論和可計算理論等領(lǐng)域都有廣泛的應(yīng)用。集合的運(yùn)算規(guī)則是集合論中的重要內(nèi)容。通過該組實(shí)驗(yàn),目的是讓學(xué)生更加深刻地理解集合的概念和性質(zhì),并掌握集合的運(yùn)算規(guī)則等。實(shí)驗(yàn)要是實(shí)現(xiàn)求任意兩個集合的交集、并集、差集。二、實(shí)驗(yàn)主要儀器和設(shè)備計算機(jī)三、實(shí)驗(yàn)方法與步驟(需求分析、算法設(shè)計思
2、路、流程圖等)(1)求任意兩個集合的交集、并集、差集。(2)求任意一個集合的冪集。(3)求任意一個集合的所有m元子集。(4)求任意個元素的全排列。集合的表示采用列舉法,如A=a,b,c,d。(1)求任意兩個集合的交集、并集、差集。ABx|xAxBABx|xAxBABx|xAxÏB(2)求任意一個集合的冪集。P(A)Ai|iJ,其中Ji|i是二進(jìn)制數(shù)且i。(3)求任意一個集合的所有m元子集。按照(2)求出子集并判斷是否符合要求。(4)求任意個元素的全排列。設(shè)S=1,2,3,n,(a1,a2,an)和(b1,b2,bn)是S的兩個全排列,若存在i1,2,n,使得對一切j=1,2,i有aj
3、=bj且ai+1<bi+1,則稱排列(a1,a2,an)字典序的小于(b1,b2,bn)。記為(a1,a2,an)<(b1,b2,bn)。若(a1,a2,an)<(b1,b2,bn),且不存在(c1,c2,cn)使得(a1,a2,an)< (c1,c2,cn)<(b1,b2,bn),則稱(b1,b2,bn)為(a1,a2,an)的下一個排列。求一個排列(a1,a2,an)的下一個排列的算法如下:(1)求滿足關(guān)系式aj-1<aj的j的最大值,設(shè)為i,即i=maxj|aj-1<aj(2)求滿足關(guān)系式ai-1<ak的k的最大值,設(shè)為j,即j=maxk|
4、ai-1<ak(3)ai-1與aj互換得序列(b1,b2,bn)(4)將(b1,b2,bn)中部分bi,bi+1,bn的順序逆轉(zhuǎn),得到(b1,b2,bi-1,bn,bi)便是所求得下一個排列。四、實(shí)驗(yàn)原始紀(jì)錄(源程序、數(shù)據(jù)結(jié)構(gòu)等)#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>void Set_To_Array(char *Set,char *Array)/集合轉(zhuǎn)化為一維字符數(shù)組int i,j;j=0;for(i=1;i<(int)strlen(
5、Set)-1;i=i+2)Arrayj+=Seti;Arrayj='0'void Array_To_Set(char *Array,char *Set)/一維字符數(shù)組轉(zhuǎn)化為集合int i,j;j=0; Setj+=''for(i=0;Arrayi!='0'i+)Setj+=Arrayi;Setj+=','if(j>1)Setj-1=''Setj='0'else Setj+=''Setj='0'void Get_ISet()/集合的交運(yùn)算int i,j,k;cha
6、r *A,*B,*C,*S1,*S2,*S;A=new char; B=new char; C=new char;S1=new char; S2=new char; S=new char;printf("請輸入集合A=");scanf("%s",S1); Set_To_Array(S1,A);printf("請輸入集合B=");scanf("%s",S2);Set_To_Array(S2,B);if(!strlen(A)|!strlen(B)printf("AB=n");elsek=0;for(
7、i=0;Ai!='0'i+)for(j=0;Bj!='0'j+)if(Ai=Bj)Sk+=Ai;break;Sk='0'Array_To_Set(S,C);printf("AB=%sn",C);void Get_USet()/集合的并運(yùn)算int i,j,k,flag;char *A,*B,*C,*S1,*S2,*S;A=new char;B=new char;C=new char;S1=new char;S2=new char;S=new char;printf("請輸入集合A=");scanf("
8、;%s",S1); Set_To_Array(S1,A);printf("請輸入集合B=");scanf("%s",S2);Set_To_Array(S2,B); S=A;k=strlen(S);for(i=0;Bi!='0'i+) flag=1; for(j=0;Aj!='0'j+) if(Aj=Bi)flag=0;break; if(flag)Sk+=Bi;Sk='0'Array_To_Set(S,C);printf("AB=%sn",C);void Get_DSet()/
9、集合的差運(yùn)算int i,j,k,flag;char *A,*B,*C,*S1,*S2,*S;A=new char; B=new char; C=new char;S1=new char; S2=new char; S=new char;printf("請輸入集合A=");scanf("%s",S1); Set_To_Array(S1,A);printf("請輸入集合B=");scanf("%s",S2);Set_To_Array(S2,B);k=0;for(i=0;Ai!='0'i+) flag=1
10、; for(j=0;Bj!='0'j+)if(Ai=Bj)flag=0;break; if(flag)Sk+=Ai;Sk='0'Array_To_Set(S,C);printf("A-B=%sn",C);void Get_PSet()/求集合的冪集int i,j,k,n;char *A,*P,*S1,*S;A=new char;P=new char;S1=new char;S=new char;printf("請輸入集合A=");scanf("%s",S1); Set_To_Array(S1,A);n=
11、strlen(A);printf("P(A)=");for(i=0;i<(int)pow(2,n);i+)k=0;for(j=0;j<n;j+)if(i&(int)pow(2,j)Sk+=Aj; Sk='0' Array_To_Set(S,P);if(strlen(S)=strlen(A)printf("%s",P);else printf("%s,",P);printf("n");int f(int n,int m)int s=1,i;for(i=n-m+1;i<=n;i
12、+)s=s*i;return s;void Get_SubSet()/求集合指定元素個數(shù)的子集 int i,j,m,k,ip,g; char *A,*S1,*S,*B; A=new char; S1=new char; S=new char; B=new char; printf("A=");scanf("%s",S1); printf("g=");scanf("%d",&g); Set_To_Array(S1,A); m=strlen(A); if(g<1|g>m)printf("輸
13、入的元數(shù)錯誤");return; printf("集合A=%s的%d元子集如下:n",S1,g); for(i=1;i<=f(m,g);i+) k=0;ip=0; for(j=0;j<m;j+) if(i&(int)pow(2,j)Sk+=Aj;ip+; Sk='0' if(ip=g)Array_To_Set(S,B);printf("%sn",B); void swap(int &a, int &b) a=a+b; b=a-b; a=a-b;void swapc(char *A,int i,
14、int j) char temp; temp=Ai; Ai=Aj; Aj=temp;void Get_SArrange()int i,j,k,m,n,p,*C;char *A,*S;A=new char;S=new char;C=new int;printf("請輸入集合A=");scanf("%s",S); Set_To_Array(S,A);n=strlen(A);for(k=1;k<=n;k+)Ck=k;printf("全排列如下:n");printf("%s",A);p=1;for(k=1;k<
15、=n;k+)p=p*Ck;for(m=1;m<p;m+)for(j=2;j<=n;j+)if(Cj-1<=Cj)i=j;for(k=i;k<=n;k+)if(Ci-1<Ck)j=k;swap(Ci-1,Cj);swapc(A,i-2,j-1);for(k=0;k<=n;k+)if(i+k<n-k)swap(Ci+k,Cn-k);swapc(A,i+k-1,n-k-1);printf("->%s",A); printf("n");void main() int i=1; while(i>0) Syste
16、m(“cls”); printf("1、求兩個集合的交集 2、求兩個集合的并集n"); printf("3、求兩個集合的差集 4、求一個集合的冪集n"); printf("5、求一個集合的m元子集 6、求任意集合元素的全排列n"); printf("0、退出n"); printf("請選擇要進(jìn)行的操作:"); scanf("%d",&i); switch(i) case 1:Get_ISet();break; case 2:Get_USet();break; case
17、 3:Get_DSet();break; case 4:Get_PSet();break; case 5:Get_SubSet();break; case 6:Get_SArrange();break; case 0:exit(-2); default:printf("選擇錯誤,請重新選擇:nn"); 5、 實(shí)驗(yàn)結(jié)果及分析(計算過程與結(jié)果、數(shù)據(jù)曲線、圖表等)求任意兩個集合的交集、并集、差集。求任意一個集合的冪集。求任意一個集合的所有m元子集。求任意個元素的全排列。集合的表示采用列舉法,如A=a,b,c,d六、實(shí)驗(yàn)總結(jié)與思考集合的表示采用列舉法,如A=a,b,c,d。(1)求
18、任意兩個集合的交集、并集、差集。ABx|xAxBABx|xAxBABx|xAxÏB(2)求任意一個集合的冪集。P(A)Ai|iJ,其中Ji|i是二進(jìn)制數(shù)且i。(3)求任意一個集合的所有m元子集。按照(2)求出子集并判斷是否符合要求。(4)求任意個元素的全排列。設(shè)S=1,2,3,n,(a1,a2,an)和(b1,b2,bn)是S的兩個全排列,若存在i1,2,n,使得對一切j=1,2,i有aj=bj且ai+1<bi+1,則稱排列(a1,a2,an)字典序的小于(b1,b2,bn)。記為(a1,a2,an)<(b1,b2,bn)。若(a1,a2,an)<(b1,b2,bn),且不存在(c1,c2,cn)使得(a1,a2,an)< (c1,c2,cn)<(b1,b2,bn),則稱(b1,b2,bn)為(a1,a2,an)的下一個排列。求一個排列(a1,a2,an)的下一個排列的算法如下:(1)求滿足關(guān)系式aj-1<aj的j的最大值,設(shè)為i,即i=maxj|aj-1<aj(2)求滿足關(guān)系式ai-1<ak的k的最大值,設(shè)為j,即j=maxk|ai-1<
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度車場租賃及停車場綠化美化服務(wù)協(xié)議4篇
- 科技引領(lǐng)下的宇宙探索進(jìn)展
- 二零二五年度車輛融資租賃合同違約責(zé)任答辯狀樣本8篇
- 二零二五年度車輛買賣合同含車輛綠色環(huán)保認(rèn)證3篇
- 二零二五年度草坪圍欄施工與城市排水系統(tǒng)配套合同2篇
- 2025年度個人知識產(chǎn)權(quán)代理傭金協(xié)議4篇
- 二零二五年度櫥柜衣柜模塊化設(shè)計生產(chǎn)合同4篇
- 2025年度個人車位買賣合同范本(寫字樓)3篇
- 高效體育訓(xùn)練學(xué)生體能提升的秘密武器
- 2025年度綠色有機(jī)牛奶產(chǎn)銷一體化合作合同范本4篇
- 第八講 發(fā)展全過程人民民主PPT習(xí)概論2023優(yōu)化版教學(xué)課件
- 實(shí)體瘤療效評價標(biāo)準(zhǔn)RECIST-1.1版中文
- 王崧舟:學(xué)習(xí)任務(wù)群與課堂教學(xué)變革 2022版新課程標(biāo)準(zhǔn)解讀解析資料 57
- 企業(yè)新春茶話會PPT模板
- GB/T 19185-2008交流線路帶電作業(yè)安全距離計算方法
- 2022年上海市初中畢業(yè)數(shù)學(xué)課程終結(jié)性評價指南
- DIC診治新進(jìn)展課件
- 公路工程施工現(xiàn)場安全檢查手冊
- 1汽輪機(jī)跳閘事故演練
- 禮品(禮金)上交登記臺賬
- 普通高中英語課程標(biāo)準(zhǔn)詞匯表
評論
0/150
提交評論