羅幼芝
摘要:本文闡述了離散數(shù)學(xué)的教學(xué)中加入實(shí)踐環(huán)節(jié)的必要性,具體介紹了作者在離散數(shù)學(xué)教學(xué)中進(jìn)行的上機(jī)實(shí)驗(yàn)內(nèi)容。
關(guān)鍵詞:離散數(shù)學(xué);實(shí)驗(yàn)教學(xué);算法
中圖分類號(hào):D642.4文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1002—2589(2009)29—0147—01
長(zhǎng)期以來,離散數(shù)學(xué)課程內(nèi)容概念多、理論性強(qiáng)、高度抽象,致使在實(shí)際教學(xué)中出現(xiàn)了學(xué)生學(xué)習(xí)興趣不高、學(xué)習(xí)目的不明確、學(xué)習(xí)效果不理想等現(xiàn)象,難于激發(fā)學(xué)生積極思考,不利于學(xué)生創(chuàng)新意識(shí)和創(chuàng)新能力的培養(yǎng)。
為了改變離散數(shù)學(xué)教學(xué)中的上述狀況,培養(yǎng)學(xué)生自主分析問題、解決問題的能力,同時(shí)也加深他們對(duì)該課程在專業(yè)教學(xué)中地位的理解和認(rèn)識(shí),在離散數(shù)學(xué)的教學(xué)過程中,我們嘗試了以課堂教學(xué)為主,適當(dāng)增加上機(jī)實(shí)驗(yàn)操作的教學(xué)模式。下面是兩個(gè)關(guān)于離散數(shù)學(xué)的上機(jī)實(shí)驗(yàn)內(nèi)容。
實(shí)驗(yàn)一:關(guān)系傳遞閉包的Warshall算法的上機(jī)實(shí)驗(yàn)內(nèi)容。
設(shè)R為n元集上的關(guān)系,M 是R的關(guān)系矩陣,則
(1)置新矩陣N=M;
(2)置i=l;
(3)對(duì)j(1≤J≤n),若N的第j行第i列處為l,則對(duì)k=-1,2,? ,n做如下計(jì)算:
將N的第j行k列處元素與第i行k列處元素進(jìn)行邏輯加,然后將結(jié)果放到第j行k列處,即
N [j,k]= N [j,k]+N [i,k];
(4)i=i+l;
(5)若i≤n,則轉(zhuǎn)到步驟(3),否則停止。
最終得到的矩陣N為關(guān)系R的傳遞閉包 R的關(guān)系矩陣。
對(duì)于此類算法,用C語言編寫的具體代碼如下。
#define N 3
main()
{int MINI[N]={{1,0,0},{0,1,0},
{0,1,1}};/}此處可改為由用戶輸入}/
int i,j,k,s;
for(i=0;i for(j 0~j if(a[訂[i]) for(k=0;k {a[jl[k1+-a[il[kI. if(a[jltk1>1)a[il[k]=1; } } 其中集合為{a,b,C},關(guān)系R的關(guān)系矩陣本例中固定為M,實(shí)際運(yùn)行時(shí)也可由用戶輸入,最后再添加上輸出語句即是一完整的程序了。 實(shí)驗(yàn)二:等價(jià)關(guān)系的算法的上機(jī)實(shí)驗(yàn)內(nèi)容。 等價(jià)關(guān)系是離散數(shù)學(xué)的一個(gè)重點(diǎn)問題,而等價(jià)關(guān)系的判定是一個(gè)難點(diǎn)。對(duì)于某個(gè)關(guān)系來說,判定它是否等價(jià)的過程比較繁瑣。為此給出判斷等價(jià)關(guān)系的一個(gè)充要條件(集臺(tái)上A的等價(jià)關(guān)系的充要條件是:R,R= 且 R)以及用關(guān)系矩陣判斷的方法,并用C語言編寫具體代碼如下。 #defineN 12 /★假設(shè)集合A臺(tái)有l(wèi)2個(gè)元索★/ main() int i,j,k MR[N][N]; printf( 請(qǐng)輸^關(guān)系矩陣MR(%d★%d):
,N,N); for(i:0;i lot(j=0;j scanf(“%d ,&MR[i][j]); for(i=0;_ if(!MR[i][i]) 叫ntf( 關(guān)系R不是自反的:MR(%d,%d)!=1
”,i+1,i+1); return: for(i=0;i f。r(j=0;j if(MR[i][j]!=MR[j][.]) printf(”關(guān)系R不是對(duì)稱的:
MR(%d,%d)=MR(%d,%d)
”,i+1,j+1,j+1,i+1); for(i=0;i for(j:0;j if(MR[i][j]) for(k=0;k if(MR[j][k]) if(!MR[i][k])l printf( 關(guān)系R不是傳遞的:
~玨 (%d,%d)=1,MR(%d,%d)=, 但MR(%d,%d)=1
”,i+1,j+1,j+1,k+1,i+1,k+1); . retuFn: printf(”二元關(guān)系R是等價(jià)關(guān)系
) 通過給出判定等價(jià)關(guān)系的一種方法,同時(shí)依此給出具體算法在計(jì)算機(jī)上實(shí)現(xiàn),具有很強(qiáng)的可操作性,可以提高效率。 通過離散數(shù)學(xué)實(shí)驗(yàn)教學(xué),可以把原本高度抽象的理論與編程等聯(lián)系起來,不僅提高了學(xué)生學(xué)習(xí)該課程的興趣,而且增強(qiáng)了學(xué)生的動(dòng)手能力。由于在實(shí)驗(yàn)中還應(yīng)用到了其他計(jì)算機(jī)知識(shí),如算法分析(優(yōu)化程序)、vc++(進(jìn)行程序設(shè)計(jì))等,因此,離散數(shù)學(xué)實(shí)驗(yàn)教學(xué)也培養(yǎng)了學(xué)生綜合運(yùn)用知識(shí)的能力,加深了對(duì)所學(xué)知識(shí)的認(rèn)識(shí)。因此,在離散數(shù)學(xué)教學(xué)中增加實(shí)驗(yàn)內(nèi)容,會(huì)取得理想的教學(xué)效果。 參考文獻(xiàn): [1]耿素云.離散數(shù)學(xué)[M].北京:清華大學(xué)出版社,2004. [2]謝緒愷.離散數(shù)學(xué)基礎(chǔ)[M].北京:機(jī)械工業(yè)出版社,2005. [3]張忠志.離散數(shù)學(xué)[M].北京:高等教育出版社,2002. [4]朱文簧“離散數(shù)學(xué)”的教學(xué)實(shí)踐和體會(huì)[J].高等理科教育,2003,47(1):33~35. [5]陳莉,劉曉霞,張仲選,劉小寧.計(jì)算機(jī)專業(yè)基礎(chǔ)課教學(xué)改革探索[J].高等理科教育,2003,54(2):51~55. (責(zé)任編輯/彭巍)