導航:首頁 > 源碼編譯 > 編譯原理閉包函數怎麼求

編譯原理閉包函數怎麼求

發布時間:2023-02-08 15:39:09

① 資料庫閉包怎麼計算

已知關系模式R<U,F>,其中
U={A,B,C,D,E};
F={AB→C,B→D,C→E,EC→B,AC→B}。
求(AB)F+ 。
解 設X(0)=AB;
(1)計算X(1): 逐一的掃描F集合中各個函數依賴,
找左部為A,B或AB的函數依賴。得到兩個:
AB→C,B→D。
於是X(1)=AB∪CD=ABCD。
(2)因為X(0)≠ X(1) ,所以再找出左部為ABCD子集的那些函數依賴,又得到AB→C,B→D, C→E,AC→B,
於是X(2)=X(1)∪BCDE=ABCDE。
(3)因為X(2)=U,演算法終止
所以(AB)F+ =ABCDE。

求屬性集X(X  U)關於U上的函數依
賴集F 的閉包XF+
輸入:X,F
輸出:XF+
步驟:
(1)令X(0)=X,i=0
(2)求B,這里B = { A |( V)(  W)(V→WF
∧V  X(i)∧A W)};
(3)X(i+1)=B∪X(i)
(4)判斷X(i+1)= X (i)嗎?
(5)若相等或X(i)=U , 則X(i)就是XF+ ,
演算法終止。
(6)若否,則 i=i+l,返回第(2)步。
對於演算法6.l, 令ai =|X(i)|,{ai }形成一個步長大
於1的嚴格遞增的序列,序列的上界是 | U |,因
此該演算法最多 |U| - |X| 次循環就會終止。

② 資料庫閉包怎麼算的

閉包就是由一個屬性直接或間接推導出的所有屬性的集合,例如: f={a->b,b->c,a->d,e->f} ,由a可直接得到b和d,間接得到c,則a的閉包就是{a,b,c,d}。

例:設關系R(A,B,C, D,E, G)有函數依賴集F={AB→C, BC→AD,D→E, CG→B},求AB的閉包。

解:首先從AB出發,令X={A,B},由於函數依賴AB→C左邊的所有屬性都在X中,所以可以把右邊的C添加到X中,這時X={A, B,C},其次考慮函數依賴BC→AD,左邊B,C均在X中,右邊D不在X中,將其添加到X中,此時X={A,B,C,D}。

再考慮函數依賴D→E,同理可將E添加到X中,此時x={A,B,C,D,E}。上述方法再不能向X中添加屬性,所以得到{A,B} +={A,B,C,D, E}。


(2)編譯原理閉包函數怎麼求擴展閱讀:

使用閉包的注意點

1,由於閉包會使得函數中的變數都被保存在內存中,內存消耗很大,所以不能濫用閉包,否則會造成網頁的性能問題,在IE中可能導致內存泄露。解決方法是,在退出函數之前,將不使用的局部變數全部刪除。

2,閉包會在父函數外部,改變父函數內部變數的值。所以,如果你把父函數當作對象(object)使用,把閉包當作它的公用方法(Public Method),把內部變數當作它的私有屬性(private value),這時一定要小心,不要隨便改變父函數內部變數的值。

閱讀全文

與編譯原理閉包函數怎麼求相關的資料

熱點內容
代理伺服器地址和埠分別是多少 瀏覽:533
怎麼下載氧氣app 瀏覽:150
哪裡可以接到一手注冊單的app 瀏覽:909
網盤沒有文件夾 瀏覽:143
上海通用在線編程網站 瀏覽:651
單個電競賓館怎麼做伺服器 瀏覽:813
wps中pdf如何轉word 瀏覽:681
程序員實力如何 瀏覽:426
php調用websocket 瀏覽:609
程序員被殺手看上 瀏覽:738
蘋果相冊加密軟體推薦 瀏覽:330
演算法導論分治策略 瀏覽:714
加工中心goto命令詳解 瀏覽:389
公司理財羅斯pdf 瀏覽:658
yum安裝php指定版本 瀏覽:277
文件程序員 瀏覽:104
怎麼開發app購物 瀏覽:221
百度網盤解壓密碼是中文怎麼辦 瀏覽:740
平安京國際版選擇什麼伺服器 瀏覽:356
linux文件夾重命名命令 瀏覽:121