




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
離散數(shù)學(xué)實(shí)驗(yàn)C++關(guān)系的運(yùn)算(冪運(yùn)算,閉包運(yùn)算)離散數(shù)學(xué)實(shí)驗(yàn)C++關(guān)系的運(yùn)算(冪運(yùn)算,閉包運(yùn)算)離散數(shù)學(xué)實(shí)驗(yàn)C++關(guān)系的運(yùn)算(冪運(yùn)算,閉包運(yùn)算)資料僅供參考文件編號:2022年4月離散數(shù)學(xué)實(shí)驗(yàn)C++關(guān)系的運(yùn)算(冪運(yùn)算,閉包運(yùn)算)版本號:A修改號:1頁次:1.0審核:批準(zhǔn):發(fā)布日期:實(shí)驗(yàn)2關(guān)系的運(yùn)算關(guān)系的冪運(yùn)算輸入:集合A,二元關(guān)系集合R,冪次n輸出:R的n次冪要求:盡量使運(yùn)算的計(jì)算量最小關(guān)系閉包的計(jì)算輸入:集合A,二元關(guān)系集合R輸出:R的傳遞閉包t(R)要求:采用Warshall算法(89頁)編寫代碼判斷輸出t(R)為傳遞閉包程序代碼:#include<iostream>#include<sstream>#include<vector>usingnamespacestd;typedefvector<vector<int>>Mat;classRelation{ vector<int>s;//集合 MatA;//關(guān)系矩陣 MatB; MatC; MatE; MatD[100];//用來存儲矩陣 intn;public: voidinputs();//將集合存入向量中 voidinputa();//將讀入的關(guān)系轉(zhuǎn)化為關(guān)系矩陣 voidprint();//輸出關(guān)系矩陣 voidmi(); intWarshall();};//定義類intn,m;//全局變量,下文中使用voidRelation::inputs(){ cout<<"輸入集合"; for(inta;cin>>a;){ (a);if(getchar()=='\n')break;}}//將集合存入向量中voidRelation::inputa(){//將讀入的關(guān)系轉(zhuǎn)化為關(guān)系矩陣 cout<<"輸入關(guān)系"; inti,j,e,r; for(i=0;i<();i++){ vector<int>u; for(j=0;j<();j++){ intia=0; (ia);} (u); (u); (u); (u); }//創(chuàng)建二維向量,初始化,是每個元素為0 for(inth,z;cin>>h>>z;){if(h==0&&z==0) break; for(i=0;i<();i++){ if(s[i]==h)e=i; if(s[i]==z)r=i; } A[e][r]=1;B[e][r]=1; E[e][r]=1;//C[e][r]=1;//讀入關(guān)系,將關(guān)系對應(yīng)的矩陣中的位置元素變?yōu)? if(getchar()=='\n')break; }}voidRelation::print(){ for(inti=0;i<();i++){ for(intj=0;j<();j++) cout<<A[i][j]<<""; cout<<endl; }}//輸出關(guān)系矩陣voidRelation::mi(){ inta,b,i,c; cin>>n;//讀入冪次 if(n==0){//0次冪 for(intk=0;k<();++k){ for(intj=0;j<();++j){ if(k==j) cout<<"1";//對角線上元素為1 else cout<<"0"; } cout<<endl; } } else{ for(i=1;i<n;++i){ for(inth=0;h<();++h){ for(intd=0;d<();++d){ intm=0; for(intx=0;x<();++x){ m=m+B[h][x]*A[x][d];//第h行第d列的元素對應(yīng)相乘的和 } C[h][d]=m; } } if(i>1){ for(a=0;a<();++a){ for(b=0;b<();++b){ if(C[a][b]!=D[0][a][b]) break; } if(b!=())break; } }//檢驗(yàn)是否重復(fù) if(a==()&&b==()){ break;//重復(fù)則跳出不再冪乘 } for(intk=0;k<();k++){ for(intj=0;j<();j++){ B[k][j]=C[k][j]; } D[i-1]=B; c=i; } } if(a==()&&b==()){ intq; q=(n-i)%c;//找出結(jié)果位置 if(q==0)q=c; for(inte=0;e<();e++){ for(intf=0;f<();f++){ cout<<D[q-1][e][f]<<"";//輸出 } cout<<endl; } return; }else{//1次冪 for(inth=0;h<();h++){ for(intn=0;n<();n++){ cout<<B[h][n]<<""; } cout<<endl; } } }}intRelation::Warshall(){ for(inti=0;i<();++i){ for(intj=0;j<();++j){ if(A[j][i]==1){ for(intk=0;k<();++k){ A[j][k]=A[j][k]+A[i][k]; if(A[j][k]!=0&&A[j][k]!=1) A[j][k]=1; } } } } print(); inta=1;intb=1;// for(intp=0;p<();++p){ for(intl=0;l<();++l){ if(A[p][l]==0){ for(intx=0;x<();++x){ if(A[p][x]*A[x][l]==1) a=0; } } } } if(a==0){cout<<"wrong!"<<endl;} else{ for(intp=0;p<();++p){ for(intl=0;l<();++l){ if(A[p][l]==1&&E[p][l]==0){ A[p][l]=0; //再判斷傳遞性 for(intp=0;p<();++p){ for(intl=0;l<();++l){ if(A[p][l]==0){ for(intx=0;x<();++x){ if(A[p][x]*A[x][l]==1) b=0; } } } } if(b==1){ cout<<"wrong!"<<endl; return0;
溫馨提示
- 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冰箱清潔服務(wù)合同
- 2025辦公室裝修合同書協(xié)議
- 2025租賃合同(辦公樓)
- 2025物業(yè)管理委托合同模板
- 2025房屋買賣的合同書樣本
- 2024年醫(yī)用電子直線加速器項(xiàng)目資金需求報告代可行性研究報告
- 2025版合同范本模板下載
- 纖維基太陽能電池的研究考核試卷
- 2025合同法規(guī)管理包含哪些內(nèi)容
- 《動感十足的》課件
- 上海市低年級主題式綜合活動課程指導(dǎo)綱要
- 人教版二年級音樂下冊教案全冊合集
- 中國人口老齡化背景下的財政政策研究
- 汽車發(fā)動機(jī)原理(第5版) 課件 第三章 柴油機(jī)混合氣形成和燃燒
- 隧道爆破人員教育培訓(xùn)課件
- 06、摩擦力疊加問題-12題
- 超級辯論賽辯論比賽流程主題課件
- 張學(xué)良與西安事變
- 中央廚房項(xiàng)目計(jì)劃書
- 《企業(yè)經(jīng)營決策實(shí)戰(zhàn)模擬》教學(xué)大綱
- 抗菌藥物合理使用培訓(xùn)
評論
0/150
提交評論