2012-02-07 73 views
3

這是一個通用邏輯問題,對大多數介紹性語言和機器課程都很常見。然而,我已經搜索了互聯網和論壇尋求任何幫助,但我似乎找不到一個話題,詳細說明連續集將包含什麼。下面是一個示例問題:(我有很多像這樣的硬件問題,我只是不知道從哪裏開始)通過遞歸生成集 - 語言和字符串(cs/logic)

讓L爲{a,b}上的語言,由以下遞歸定義 basis:λ ∈L 遞歸步驟:如果w∈L,則awbb在L. 閉包:只有在可以從遞歸步驟的應用的有限數 的基集中獲得的情況下,串w∈L。 部分a。給集合L1; L2;和遞歸定義生成的L3。請注意,L0 =λ

我知道字母是{a,b},Lo =空字符串,如果字符串w包含在L中,那麼awbb在L.但是這對於接下來的幾套?

我認爲L1 = {λ,awbb},然後L2 = {λ,awbb,aawbbwbb}?

任何幫助你可以提供這一點,將不勝感激。

+1

你在那裏有什麼也經常被稱爲*歸納定義*。定義的集合是該定義的最小固定點(或者,在「laymens」術語中,是滿足給定標準的最小集合)。請注意,後者是非常重要的(你稱它爲「最終許多應用程序」),否則許多集合符合「定義」。 – Raphael 2012-02-07 18:35:17

回答

5

我認爲你曲解了這些規則

當w ∈ L,然後awbb ∈大號

手段。這並不意味着字符串「awbb」在L中。相反,這意味着如果您有一些字符串w ∈ L,則可以將該字符串w替換爲字符串awbb,並且結果字符串將在L.例如,如果ab ∈ L,則還有aabbb ∈ L.

使用此方法,嘗試再次構建集合L 和L 。我認爲,一旦你建立了前幾集,你就會發現一個直接的模式。

希望這會有所幫助!

+0

感謝您的快速響應!對於你的例子,如果w = ab,那麼L1 = {λ,aabbb}和L2 = {{λ,aabbb,aababbb}等等,將ab放入前一個字符串的中間。那麼通常L1 = {λ,awbb}和L2 = {λ,awwbb}等等?或者我完全錯過了你的觀點? – user1193839 2012-02-07 05:43:55

+0

@ user1193839-我想你完全錯過了我的觀點。 :-)把w想象成一個佔位符。如果你在集合L中有一個字符串,那麼你可以把這個字符串插入到通常在字符串中的位置。所以,例如,如果你知道lambda是在L中,在應用規則之後你會得到那個abb也是在L中,因爲如果你用awbb替換lambda爲w,你就會得到abb。如果你想構造L2,嘗試用abb替換字符串awbb中的w並查看新的字符串結果。 – templatetypedef 2012-02-07 05:45:36

+0

ohhh。好吧,我想我現在有這個。 L2 = a [w] bb - > w = abb其中w是從前一個遞歸步驟收集的值。 L2生成字符串aabbbb,L3生成aaabbbbbb。基本上你只需要將上一步中的字符串插入到a和bb之間。 – user1193839 2012-02-07 05:52:01