此為編譯原理實(shí)驗(yàn)報告 學(xué)習(xí)消除文法左遞規(guī)算法,了解消除文法左遞規(guī)在語法分析中的作用 內(nèi)含 設(shè)計算法 目的 源碼 等等.... 算法:消除左遞歸算法為: (1)把文法G的所有非終結(jié)符按任一種順序排列成P1,P2,…Pn 按此順序執(zhí)行 (2)FOR i:=1 TO n DO BEGIN FOR j:=1 DO 把形如Pi→Pjγ的規(guī)則改寫成 Pi→δ1γ δ2γ … δkγ。其中Pj→δ1 δ2 … δk是關(guān)于Pj的所有規(guī)則; 消除關(guān)于Pi規(guī)則的直接左遞歸性 END (3)化簡由(2)所得的文法。即去除那些從開始符號出發(fā)永遠(yuǎn)無法到達(dá)的非終結(jié)符的 產(chǎn)生規(guī)則。
標(biāo)簽: 編譯原理 實(shí)驗(yàn)報告 算法
上傳時間: 2015-03-29
上傳用戶:極客
算法介紹 矩陣求逆在程序中很常見,主要應(yīng)用于求Billboard矩陣。按照定義的計算方法乘法運(yùn)算,嚴(yán)重影響了性能。在需要大量Billboard矩陣運(yùn)算時,矩陣求逆的優(yōu)化能極大提高性能。這里要介紹的矩陣求逆算法稱為全選主元高斯-約旦法。 高斯-約旦法(全選主元)求逆的步驟如下: 首先,對于 k 從 0 到 n - 1 作如下幾步: 從第 k 行、第 k 列開始的右下角子陣中選取絕對值最大的元素,并記住次元素所在的行號和列號,在通過行交換和列交換將它交換到主元素位置上。這一步稱為全選主元。 m(k, k) = 1 / m(k, k) m(k, j) = m(k, j) * m(k, k),j = 0, 1, ..., n-1;j != k m(i, j) = m(i, j) - m(i, k) * m(k, j),i, j = 0, 1, ..., n-1;i, j != k m(i, k) = -m(i, k) * m(k, k),i = 0, 1, ..., n-1;i != k 最后,根據(jù)在全選主元過程中所記錄的行、列交換的信息進(jìn)行恢復(fù),恢復(fù)的原則如下:在全選主元過程中,先交換的行(列)后進(jìn)行恢復(fù);原來的行(列)交換用列(行)交換來恢復(fù)。
上傳時間: 2015-04-09
上傳用戶:wang5829
給定n 個整數(shù)a ,a , ,an 1 2 組成的序列, a n i | |£ ,1 £ i £ n。如果對于i £ j ,有 0 = å = j k i k a ,則稱序列區(qū)間i i j a , a , , a +1 為一個零和區(qū)間,相應(yīng)的區(qū)間長度為j-i+1。
上傳時間: 2015-07-23
上傳用戶:zhangzhenyu
給定n 個整數(shù)a ,a , ,an 1 2 組成的序列, a n i | |£ ,1 £ i £ n。如果對于i £ j ,有 0 = å = j k i k a ,則稱序列區(qū)間i i j a , a , , a +1 為一個零和區(qū)間,相應(yīng)的區(qū)間長度為j-i+1。
上傳時間: 2013-12-21
上傳用戶:偷心的海盜
TV-tree的c實(shí)現(xiàn)源碼,對應(yīng)原文章K.-I. Lin, H. V. Jagadish, C. Faloutsos: The TV-Tree: An Index Structure for High-Dimensional Data.
上傳時間: 2014-11-26
上傳用戶:lxm
USB是PC體系中的一套全新的工業(yè)標(biāo)準(zhǔn),它支持單個主機(jī)與多個外接設(shè)備同時進(jìn)行數(shù)據(jù)交換。 首先會介紹USB的結(jié)構(gòu)和特點(diǎn),包括總線特徵、協(xié)議定義、傳輸方式和電源管理等等。這部分內(nèi)容會使USB開發(fā)者和用戶對USB有一整體的認(rèn)識。
標(biāo)簽: USB
上傳時間: 2015-10-18
上傳用戶:lixinxiang
經(jīng)典C語言程序設(shè)計100例1-10 如【程序1】 題目:有1、2、3、4個數(shù)字,能組成多少個互不相同且無重復(fù)數(shù)字的三位數(shù)?都是多少? 1.程序分析:可填在百位、十位、個位的數(shù)字都是1、2、3、4。組成所有的排列后再去 掉不滿足條件的排列。 2.程序源代碼: main() { int i,j,k printf("\n") for(i=1 i<5 i++) /*以下為三重循環(huán)*/ for(j=1 j<5 j++) for (k=1 k<5 k++) { if (i!=k&&i!=j&&j!=k) /*確保i、j、k三位互不相同*/ printf("%d,%d,%d\n",i,j,k) } }
標(biāo)簽: 100 10 C語言 程序設(shè)計
上傳時間: 2013-12-14
上傳用戶:hfmm633
一個旅行家想駕駛汽車從城市A到城市B(設(shè)出發(fā)時油箱是空的)。給定兩個城市之間的距離dis、汽車油箱的容量c、每升汽油能行駛的距離d、沿途油站數(shù)n、油站i離出發(fā)點(diǎn)的距離d[i]以及該站每升汽油的價格p[i],i=1,2,…,n。設(shè)d[1]=0<d[2]<…<d[n]。要花最少的油費(fèi)從城市A到城市B,在每個加油站應(yīng)加多少油,最少花費(fèi)為多少?
上傳時間: 2013-12-31
上傳用戶:redmoons
已知:Sn= 1+1/2+1/3+…+1/n。顯然對于任意一個整數(shù)K,當(dāng)n足夠大的時候,Sn大于K。 現(xiàn)給出一個整數(shù)K(1<=k<=15),要求計算出一個最小的n;使得Sn>K。 Input 鍵盤輸入 k Output 屏幕輸出 n Sample Input 1 Sample Output 2 Source
上傳時間: 2014-01-25
上傳用戶:ruixue198909
Floyd-Warshall算法描述 1)適用范圍: a)APSP(All Pairs Shortest Paths) b)稠密圖效果最佳 c)邊權(quán)可正可負(fù) 2)算法描述: a)初始化:dis[u,v]=w[u,v] b)For k:=1 to n For i:=1 to n For j:=1 to n If dis[i,j]>dis[i,k]+dis[k,j] Then Dis[I,j]:=dis[I,k]+dis[k,j] c)算法結(jié)束:dis即為所有點(diǎn)對的最短路徑矩陣 3)算法小結(jié):此算法簡單有效,由于三重循環(huán)結(jié)構(gòu)緊湊,對于稠密圖,效率要高于執(zhí)行|V|次Dijkstra算法。時間復(fù)雜度O(n^3)。 考慮下列變形:如(I,j)∈E則dis[I,j]初始為1,else初始為0,這樣的Floyd算法最后的最短路徑矩陣即成為一個判斷I,j是否有通路的矩陣。更簡單的,我們可以把dis設(shè)成boolean類型,則每次可以用“dis[I,j]:=dis[I,j]or(dis[I,k]and dis[k,j])”來代替算法描述中的藍(lán)色部分,可以更直觀地得到I,j的連通情況。
標(biāo)簽: Floyd-Warshall Shortest Pairs Paths
上傳時間: 2013-12-01
上傳用戶:dyctj
蟲蟲下載站版權(quán)所有 京ICP備2021023401號-1