是否有可能構造一個N狀態,其中k個狀態可識別所有長度爲< = k的字符串並拒絕長度大於k的所有字符串?有K個狀態的NFA接受字符串的長度<= k
0
A
回答
0
否。證明是通過k
的數學歸納。
基準案例:對於k = 0
,一個零狀態的NFA可能不是一個有效的對象,當然也不能說是接受任何東西。編輯:也許值得加k = 1
以及,因爲k = 0
的情況是異常的。對於k = 1
,狀態不接受(在這種情況下,接受的語言是空的),或者它正在接受,在這種情況下,它只識別空字符串(如果沒有消耗輸入的轉換)或無限多的字符串有任何消費輸入的轉換)。
感應假設:假設所有k
高達幷包括n
,沒有NFA與k
或更少的狀態接受字符串與長度不超過k
更多和拒絕長度大於k
更大字符串。
感應步驟:我們必須顯示沒有NFA與k+1
或更少的狀態接受字符串與長度不超過k+1
更多和拒絕長度大於k+1
更大字符串。假設有這樣的NFA。考慮一下這個NFA的接受狀態。除了初始狀態以外,至少必須有一個,因爲NFA接受有限的多個字符串,而不僅僅是空字符串(請參閱k = 1的基本情況)。此外,NFA中必須有一些州可以接觸到其他一些接受州,因爲必須消耗一些投入來達到這些州。考慮一組通過消耗一個輸入符號可以達到其他接受狀態的狀態。考慮一個新的NFA,其他接受狀態被替換爲標記爲接受的這組新狀態。由此產生的NFA接受不超過k個狀態的所有長度不超過k的字符串(因爲我們從一組k + 1個狀態中刪除至少一個其他接受狀態)。這與歸納假設相矛盾,因此不存在不超過k + 1個狀態的NFA來接受所有長度不超過k + 1的字符串。
0
該聲明對於長度爲< k的情況屬實。
對於長度< = k考慮一個長度爲k的字符串w。它沿着某條路被接受。此路徑訪問k + 1個狀態。由於只有k個不同的州,至少其中一個被訪問兩次。所以路徑中有一個循環。該循環可以進行多次。因此可以接受無限多的字符串,特別是也可以是長度大於k的字符串。
相關問題
- 1. 長度爲k
- 2. 長度爲k
- 3. 連接兩個字符串(K&R)
- 4. 長度增加的字符串的數量k
- 5. 長度爲k的可能二進制字符串
- 6. 證明具有k <2^n個狀態的任何DFA不接受具有奇數個字符的字符串
- 7. 查找所有周期的長度的有向圖<= K
- 8. 如何製作一個長度爲k比特的二進制字符串
- 9. 打印長度爲k
- 10. 可以從一組n個字符形成長度爲k的所有字符串
- 11. 序言:長度爲k的子集
- 12. 刪除此字符串^ [[38; 1H^[[K^[[7m71%^ [[27m^[[38; 1H^[[38; 1H^[[K
- 13. 如何在n長度的數組中找到k個元素的最高積,其中k <n
- 14. SortedList <K,V> vs SortedDictionary <K,V> vs詞典<K,V>
- 15. 綁定一個映射<K, V>而K不是在Java中的字符串
- 16. .NET:從字典中產生字符串的有效方法<K,V>?
- 17. 通用T GetByID <K>(K ID_)
- 18. 具有K個不同字符的字符串的子序列數
- 19. 計算phi(k)的和1 <= k <= N?
- 20. 阿帕奇星火 - 斯卡拉 - HashMap的(K,HashMap的[字符串,雙(V1,V2,..))至((K,V1),(K,V2),......)
- 21. K#檢查包含字符串
- 22. 確定字符串中是否有字符出現在K次
- 23. 查找字符串中的第k個頻率字母
- 24. 檢索到少於k個文檔時在k處的精度
- 25. 字符串的長度比字符串的長度長
- 26. FileHashMap <K, V>
- 27. 將X中的所有x_i拆分爲K個組s.t. var(K中的k的總和(x in k))最小化
- 28. 動態K值
- 29. 查找長度爲k的所有遞減序列的列表?
- 30. 從長度爲k的數組獲得n上的所有組
案例k = 1:沒有轉換意味着只接受空字符串。否則,每個字母都可能有或沒有循環,因此您會得到幾種不同的語言。或者你認爲他的NFA必須完整嗎? –
對於歸納步驟,不同的第一個字母可能會導致不同的狀態。因此,第二個狀態不必等於k的自動機的開始狀態。它可以只接受部分字符串,而其他字符則可以通過不同的第二種狀態接受。 –
@PeterLeupold對於第一個評論,你是對的,看看我寫的是什麼,我認爲當時我已經完成了DFA。第二,不同的字母導致不同的國家將不會有問題(我認爲),但由於你給的原因,導致不同國家的同一封信是有問題的。我會根據這些評論做出一些改變,看看答案是否可以得到足夠的改善。 – Patrick87