簡體   English   中英

L = {a^mb^nc^k: k = m×n} 的 CFG

[英]CFG for L = {a^mb^nc^k: k = m×n}

我們可以為這種語言編寫 CFG 嗎? 我搜索了多個網站,但找不到任何答案。

我們可以使用上下文無關語言的泵引理證明這不是上下文無關的,如下所示。

假設語言是上下文無關的。 然后我們就可以用 w = uvxyz where |vxy| 的語言來寫任何字符串 w <= p, |維| > 0 並且對於所有整數 k >= 0,u(v^k)x(y^k)z 在該語言中也是一個字符串。

考慮字符串 a^(2p) b^(3p) c^(6p^2)。 這是我們語言中的一個字符串,因為 2p x 3p = 6p^2。 現在,考慮放置 substring vxy 的五種情況:

  1. vxy 僅由 a 組成。 抽氣至少 1 將使乘積減少至少 3p,打破了平等。
  2. vxy 僅由 a 和 b 組成。 Pumping down 會使乘積減少至少 2p,打破不等式。
  3. vxy 僅由 b 組成。 Pumping down 會使乘積減少至少 2p,打破不等式。
  4. vxy 由 b 和 c 組成。 如果我們抽空,我們必須移除至少一個 b 但不超過 p c; 因為我們需要刪除至少 2p c 以保持相等性為真,所以這打破了它。
  5. vxy 僅由 c 組成。 pumping down 減少乘積而不減少被乘數,這不能保持相等。

在所有五種可能的情況下,我們看到在抽空(選擇 k = 0)時無法保持相等,因此我們的弦無法抽空。 但是這種語言不可能是上下文無關的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM