此為編譯原理實(shí)驗(yàn)報(bào)告 學(xué)習(xí)消除文法左遞規(guī)算法,了解消除文法左遞規(guī)在語法分析中的作用 內(nèi)含 設(shè)計(jì)算法 目的 源碼 等等.... 算法:消除左遞歸算法為: (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ī)則。
Routine mampres: To obtain amplitude response from h(exp(jw)).
input parameters:
h :n dimensioned complex array. the frequency response is stored
in h(0) to h(n-1).
n :the dimension of h and amp.
fs :sampling frequency (Hz).
iamp:If iamp=0: The Amplitude Res. amp(k)=abs(h(k))
If iamp=1: The Amplitude Res. amp(k)=20.*alog10(abs(h(k))).
output parameters:
amp :n dimensioned real array. the amplitude-frequency response is
stored in amp(0) to amp(n-1).
Note:
this program will generate a data file "filename.dat" .
in chapter 2
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算法。時(shí)間復(fù)雜度O(n^3)。
考慮下列變形:如(I,j)∈E則dis[I,j]初始為1,else初始為0,這樣的Floyd算法最后的最短路徑矩陣即成為一個(gè)判斷I,j是否有通路的矩陣。更簡單的,我們可以把dis設(shè)成boolean類型,則每次可以用“dis[I,j]:=dis[I,j]or(dis[I,k]and dis[k,j])”來代替算法描述中的藍(lán)色部分,可以更直觀地得到I,j的連通情況。