Grammatica是一個C#和Java的語法分析程序生成器(編譯器的編譯器)。它可以用LL(k)語法創建可讀的和帶有注釋的源代碼。它也支持創建一個運行時語法分析器,帶不生成源代碼。語法產生式用EBNF描述,使用規則表達式的符號
標簽: Grammatica Java 編譯器 LL
上傳時間: 2014-11-12
上傳用戶:569342831
本軟件是集成式的輸入平臺,是一個輸入法整合軟件,除了本有的拼音輸入外,可以掛接 各種形碼輸入方案,如五筆98、86、鄭 ... 由于使用只有50多K的單線矢量字庫,從體積而 言是目前最小的漢字系統,當然顯示效果會打個折扣,直接鍵入xzl.com進行加載即可。
上傳時間: 2015-04-02
上傳用戶:zmy123
實現聚類K均值算法: K均值算法:給定類的個數K,將n個對象分到K個類中去,使得類內對象之間的相似性最大,而類之間的相似性最小。 缺點:產生類的大小相差不會很大,對于臟數據很敏感。 改進的算法:k—medoids 方法。這兒選取一個對象叫做mediod來代替上面的中心 的作用,這樣的一個medoid就標識了這個類。步驟: 1,任意選取K個對象作為medoids(O1,O2,…Oi…Ok)。 以下是循環的: 2,將余下的對象分到各個類中去(根據與medoid最相近的原則); 3,對于每個類(Oi)中,順序選取一個Or,計算用Or代替Oi后的消耗—E(Or)。選擇E最小的那個Or來代替Oi。這樣K個medoids就改變了,下面就再轉到2。 4,這樣循環直到K個medoids固定下來。 這種算法對于臟數據和異常數據不敏感,但計算量顯然要比K均值要大,一般只適合小數據量。
上傳時間: 2015-04-03
上傳用戶:sardinescn
求解網絡中的最短路徑。假設某個計算機網絡有n個站點,依次編號為1,2,…,n;有的站點之間有直接的線路連接(即這兩個站點之間沒有其它站點),有的站點之間沒有直接的線路連接。如果用三元組(i,j,f)來表示該網絡中的站點I和站點j之間有直接的線路連接且它們之間的距離為f 當已知該網絡各站點之間的直接連接情況由m個三元組(i1,j1,f1),(i2,j2,f2),…,(im,jm,fm)確定時,要求計算出對于網絡中任意一個站點g(1≤g≤n)到其余各站點的最短距離。
上傳時間: 2013-12-27
上傳用戶:asdkin
.數據結構 假設有M個進程N類資源,則有如下數據結構: MAX[M*N] M個進程對N類資源的最大需求量 AVAILABLE[N] 系統可用資源數 ALLOCATION[M*N] M個進程已經得到N類資源的資源量 NEED[M*N] M個進程還需要N類資源的資源量 2.銀行家算法 設進程I提出請求Request[N],則銀行家算法按如下規則進行判斷。 (1)如果Request[N]<=NEED[I,N],則轉(2);否則,出錯。 (2)如果Request[N]<=AVAILABLE,則轉(3);否則,出錯。 (3)系統試探分配資源,修改相關數據: AVAILABLE=AVAILABLE-REQUEST ALLOCATION=ALLOCATION+REQUEST NEED=NEED-REQUEST (4)系統執行安全性檢查,如安全,則分配成立;否則試探險性分配作廢,系統恢復原狀,進程等待。 3.安全性檢查 (1)設置兩個工作向量WORK=AVAILABLE;FINISH[M]=FALSE (2)從進程集合中找到一個滿足下述條件的進程, FINISH[i]=FALSE NEED<=WORK 如找到,執行(3);否則,執行(4) (3)設進程獲得資源,可順利執行,直至完成,從而釋放資源。 WORK=WORK+ALLOCATION FINISH=TRUE GO TO 2 (4)如所有的進程Finish[M]=true,則表示安全;否則系統不安全。
上傳時間: 2014-01-05
上傳用戶:moshushi0009
數據結構 假設有M個進程N類資源,則有如下數據結構: MAX[M*N] M個進程對N類資源的最大需求量 AVAILABLE[N] 系統可用資源數 ALLOCATION[M*N] M個進程已經得到N類資源的資源量 NEED[M*N] M個進程還需要N類資源的資源量 2.銀行家算法 設進程I提出請求Request[N],則銀行家算法按如下規則進行判斷。 (1)如果Request[N]<=NEED[I,N],則轉(2);否則,出錯。 (2)如果Request[N]<=AVAILABLE,則轉(3);否則,出錯。 (3)系統試探分配資源,修改相關數據: AVAILABLE=AVAILABLE-REQUEST ALLOCATION=ALLOCATION+REQUEST NEED=NEED-REQUEST (4)系統執行安全性檢查,如安全,則分配成立;否則試探險性分配作廢,系統恢復原狀,進程等待。 3.安全性檢查 (1)設置兩個工作向量WORK=AVAILABLE;FINISH[M]=FALSE (2)從進程集合中找到一個滿足下述條件的進程, FINISH[i]=FALSE NEED<=WORK 如找到,執行(3);否則,執行(4) (3)設進程獲得資源,可順利執行,直至完成,從而釋放資源。 WORK=WORK+ALLOCATION FINISH=TRUE GO TO 2 (4)如所有的進程Finish[M]=true,則表示安全;否則系統不安全。
上傳時間: 2013-12-24
上傳用戶:alan-ee
DSP編程代碼,FFT算法,經典!! FFT實驗 一、 理論: 公式(1)FFT運算公式 FFT并不是一種新的變換,它是離散傅立葉變換(DFT)的一種快速算法。由于我們在計算DFT時一次復數乘法需用四次實數乘法和二次實數加法;一次復數加法則需二次實數加法。每運算一個X(k)需要4N次復數乘法及2N+2(N-1)=2(2N-1)次實數加法。所以整個DFT運算總共需要4N^2次實數乘法和N*2(2N-1)=2N(2N-1)次實數加法。如此一來,計算時乘法次數和加法次數都是和N^2成正比的,當N很大時,運算量是可觀的,因而需要改進對DFT的算法減少運算速度。 根據傅立葉變換的對稱性和周期性,我們可以將DFT運算中有些項合并。 我們先設序列長度為N=2^L,L為整數。將N=2^L的序列x(n)(n=0,1,……,N-1),按N的奇偶分成兩組,也就是說我們將一個N點的DFT分解成兩個N/2點的DFT,他們又從新組合成一個如下式所表達的N點DFT: 一般來說,輸入被假定為連續、合成的。當輸入為純粹的實數的時候,我們就可以利用左右對稱的特性更好的計算DFT。 我們稱這樣的RFFT優化算法是包裝算法:首先2N點實數的連續輸入稱為“進包”。其次N點的FFT被連續被運行。最后作為結果產生的N點的合成輸出是
上傳時間: 2015-04-29
上傳用戶:牛布牛
本程序用C語言實現了集成神經網絡解決廣義異或問題。用神經網絡集成方法做成表決網,可克服初始權值的影響,對神經網絡分類器來說:假設有N個獨立的子網,采用絕對多數投票法,再假設每個子網以1-p的概率給出正確結果,且網絡之間的錯誤不相關,則表決系統發生錯誤的概率為 Perr = ( ) pk(1-p)N-k 當p<1/2時 Perr 隨N增大而單調遞減. 在工程化設計中,先設計并訓練數目較多的子網,然后從中選取少量最佳子網形成表決系統,可以達到任意高的泛化能力。
上傳時間: 2015-05-03
上傳用戶:kiklkook
1.能實現不同的個數的矩陣連乘. 2.最后矩陣大小是8X8. 3是最優的矩陣相乘. 描 述:給定n 個矩陣{A1, A2,...,An},其中Ai與Ai+1是可乘的,i=1,2…,n-1??疾爝@n個矩陣的連乘積A1A2...An。矩陣A 和B 可乘的條件是矩陣A的列數等于矩陣B 的行數。若A 是一個p x q矩陣,B是一個q * r矩陣,則其乘積C=AB是一個p * r矩陣,需要pqr次數乘。
上傳時間: 2013-12-04
上傳用戶:wang5829
將大數看作一個n進制數組,對于目前的32位系統而言n可以取值為2的32次方,即0x10000000, 假如將一個1024位的大數轉化成0x10000000進制,它就變成了32位,而每一位的取值范圍就不是0-1 或0-9,而是0-0xffffffff。我們正好可以用一個無符號長整數來表示這一數值。所以1024位的大數 就是一個有32個元素的unsigned long數組。而且0x100000000進制的數組排列與2進制流對于計算機 來說,實際上是一回事,但是我們完全可以針對unsigned long數組進行“豎式計算”,而循環規模 被降低到了32次之內,并且算法很容易理解。
上傳時間: 2015-05-29
上傳用戶:xsnjzljj