[英]Does there exist a context-free grammar for {0^i1^j such that 1 <= i <= j <=2i }?
我遇到了兩個完全不同的答案。
有人說:
是的,確實存在{0 i 1 j | 1≤i≤j≤2i}
{0 i 1 j | 1≤i≤j≤2i}
,以下語法確保存在的1可以有一半或更少的0:
S -> 0S11 | 0S1 | 01
另一個:不,通過矛盾證明:
情況1:
假設您將i 0壓入堆棧。
彈出j 1s。
您無法確定j <= 2i。
情況2:
假設您將2i 0s壓入堆棧。
彈出j 1s。
您無法確定j> = i。
推入堆棧的任何其他不等於i或2i的值都是相對於這兩個值之一的值,因此適用相同的推理。
是不是正確? 非常感謝!
由於存在語法,您可以很清楚地檢查它是否與整個語言匹配,因此該語言必須是上下文無關的。 因此,矛盾證明是錯誤的。 但為什么?
證明假設機器必須是確定性的。 但是,您需要一個不確定的下推自動機來識別一些與上下文無關的語法。 因此,所有第二個證明(如果是正確的話)證明該語言不是確定性的上下文無關語言,但沒有表明它不是上下文無關的語言。
確實,如果讓機器不確定,則基本上將i推為0,然后對堆棧中的每個0不確定地彈出1或2 1。 如果字符串使用語言,則其中一種計算將接受。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.