2009-10-07 61 views
1

我不太明白圖靈機的東西的整個想法。如何模擬圖靈機?

我目前的任務是製作一臺忙碌的海狸圖靈機。但我真的不明白的是它模擬輸入。那麼我會模擬什麼樣的輸入?例如,它問我3個繁忙的海狸機在磁帶上寫了多少個1?我確信我需要寫一個圖靈機,但是一旦我有了它,我該怎麼處理它?

我應該用什麼字符串來模擬它?

+7

我相信有些讀者不感興趣,使精力去了解你的問題,寫一個答案,因爲你永遠不會投票給任何人,從未接受任何答案你的問題之一... – KLE 2009-10-07 08:41:30

+2

我也認爲,人們會發布答案,如果他們明白你實際上試圖解決問題之前張貼在這裏。 這聽起來很像「嗨,請爲我解決我的作業」... – reef 2009-10-07 08:47:28

+0

thx KLE,我接近看看這個問題;) – 2009-10-07 08:48:23

回答

1

對於busy beaver的情況,通常假定沒有特殊的輸入,即圖靈機的磁帶最初是空的。當然,在運行期間,繁忙的海狸可能會寫入磁帶,然後讀取它寫入的內容。

所以你必須模擬磁帶。由於它在兩端應該是無限的,我建議通過繼承ArrayList並覆蓋get()set()方法來實現它,以將正指標映射到偶數元素,並將負指數映射到奇數元素(還可以通過重複自動增加大小當存在訪問列表當前大小之外的索引時調用add(null))。

+0

Ahem ...調用'ensureCapacity(number)'而不是'add(null)' – 2009-10-07 08:55:26

+0

不起作用 - 它只增長底層數組,但不調整大小字段。 – 2009-10-07 10:09:43