1

字母:0,1一個按下自動機,產生一個字符串的翻轉和反轉

考慮翻轉,翻轉每個字符:0 - > 1; 1 - > 0 所以,當w = 0011則W翻轉= 1100

考慮反向以相反的順序 所以,當w = 01101則W反轉= 10110

現在我想的人物以生產PDA更是把字符串u,然後打印W,打印(W翻轉反轉)

w = 011 
w-flip = 100 
w-flip-reverse = 001 

所以這將打印:「011001」

考慮#是一個空白字符。因此,一個字符串將啓動#011#

轉換表看起來是這樣的:

State: Symbol Read: Next State: Head Instruction: 
start  #    r1    L 

等等

任何想法?

+1

你應該把這些標記爲家庭作業,就像你爲第一個做的一樣。 – pinkfloydx33 2010-11-13 17:41:15

+0

完成。感謝您的建議 – 2010-11-13 17:42:42

+0

開始在[CSTheory](http://cstheory.stackexchange.com/)上提出這樣的問題, – 2012-07-16 19:26:57

回答

2

打印字符串很簡單(我希望)。當您閱讀1時,打印翻蓋就如同打印0一樣簡單,反之亦然。

草圖讓你去的逆轉:

  • 你需要一個地方放一塊串一塊適合於逆轉,所以先入後出存儲是理想的( PDA中這可能是什麼?)。
  • 然後,您需要注意字符串的結尾,以便知道何時從存儲字符串以便輕鬆切換到輸出。
  • 然後您需要以正確的相反順序(如果存儲的FILO很平常)檢索每一個字符串並輸出它,當您到達字符串的末尾時停止。

在你的情況下,你需要把翻轉的字符串放入存儲器中進行反轉。

相關問題