2
這個通用語法做什麼?無限制語法
S -> LR
L -> L0Y
L -> LX
X1 -> 1X
X0 -> 0X
X0 -> 1Y
Y1 -> 0Y
YR -> R
L -> epsilon
R -> epsilon
開始符號是S.我試圖從這個語法生成字符串,我得到了每個二進制數。但我認爲它做了一些特定的事情。
這個通用語法做什麼?無限制語法
S -> LR
L -> L0Y
L -> LX
X1 -> 1X
X0 -> 0X
X0 -> 1Y
Y1 -> 0Y
YR -> R
L -> epsilon
R -> epsilon
開始符號是S.我試圖從這個語法生成字符串,我得到了每個二進制數。但我認爲它做了一些特定的事情。
S -> LR
L -> L0Y
L -> LX
X1 -> 1X
X0 -> 0X
X0 -> 1Y
Y1 -> 0Y
YR -> R
L -> epsilon
R -> epsilon
終端:0,1 開始:S
讓我們分裂的語法:
S -> LR
L -> L0Y
L -> LX
,這將產生形式L
字符串的X
和0Y
,R
字符串。
X1 -> 1X
X0 -> 0X
X0 -> 1Y
Y1 -> 0Y
YR -> R
款待X
和Y
爲作用於二進制字符串:X
將傳播到右側,然後換一個0
到1
和所有後續1
s到0
秒。實際上,單個X
遞增二進制數字而不改變其字符串長度(或卡住)。
前導Y
將重寫所有1
s到所有0
s(或卡住)的字符串。
將L
的規則視爲字符串右側部分的可能操作。 L => L0Y
會將字符串從全1重置爲全零,並將其長度增加1。 L => LX
將增加任何其他號碼,但如果值最大則失敗。
這兩個操作一起足以生成(低效)所有零和一個字符串(包括空字符串)。
L -> epsilon
R -> epsilon
只會清理哨兵。
內四個字語言的一個可能的描述:
集中的所有字符串
語境?你從哪裏得到那個語法? –
這是來自練習集之一。 –
似乎沒有刪除尾部'x'的規則。你是如何得到二進制數字的? –