簡體   English   中英

帶模方程的圖靈機

[英]Turing machines for equation with modulo

我需要為

Z =(Xi + Ki)mod 2

但是在為 2 的模數創建圖靈機方面我完全迷失了。X 和 K 是二進制輸入,其中 i 是字符串的長度。 輸入是這樣給出的,其中:

XYK

Y 只是作為二進制字符串 X 和 K 的分隔符,它們的長度可能不同。 我現在遇到的問題是關於等式的模部分。 我如何開始使用 mod 2 以及我應該注意什么?

基於此,我認為您要的是 Z 使得 Z_i = X_i + Y_i (mod 2):

 (X0 X1 X2 ... Xi
+ K0 K1 K2 ... Ki)
%  2  2  2 ...  2
= Z0 Z1 Z2 ... Zi

鑒於此和像 BXX...XY...KK...KBB... 這樣的輸入磁帶,其中 B 是空白,XX...X 是一個 i 位二進制數,Y 是一個分隔符,而 KK... K 是另一個 i 位二進制數,問題很簡單:

  1. 將新的分隔符 V 寫入輸入后的第一個非空白單元格。 確保您可以將其與 X、Y、K 區分開來。返回到磁帶的開頭。
  2. 向右移動直到找到屬於 X 的 0 或 1(如果找到 Y,請跳過下面)。 如果 1 且 X0 為 0,則進入狀態 X1。在磁帶上寫 W 並向右移動到 Y 之后的第一個 0 或 1。如果在 0 或 1 之前找到 Y,則將 V 復制到磁帶的前面,然后寫入空白超越一切並停止接受。
  3. 如果在狀態 X0 中看到 0,或者如果在 X1 中看到 1,則進入狀態 Z0。 否則,進入狀態 Z1。
  4. 在磁帶上寫一個 W,然后向右移動到 V 之后的第一個空白單元格。
  5. 如果在 Z0 中,則寫入 0,如果在 Z1 中,則寫入 1。
  6. 移回磁帶的開頭並重復該過程,直到在步驟 2 中首先找到 Y。

示例:0011 + 1010

B0011Y1010BBBBB...
^

B0011Y1010VBBBB...
^                 move to the end of input, write V separator, reset head

B0011Y1010VBBBB...
 ^                move right to first 0

BW011Y1010VBBBB...
      ^           enter X0, write W, move right to first 1 after Y

BW011YW010VBBBB...
           ^      enter Z1, write W, move right to first blank after V

BW011YW010V1BBB...
^                 write 1, return to beginning, repeat

BWW11YWW10V10BB...
^                 find 0, X0, find 0, Z0, write 0, return to start, repeat


BWWW1YWWW0V100B...
^                 find 1, X1, find 1, Z0, write 0, return to start, repeat

BWWWWYWWWWV1001...
^                 find 1, X1, find 0, Z1, write 1, return to start, repeat

B1001BBBBBBBBBB...
^                 find Y, copy from after V to beginning, erase rest, halt.

暫無
暫無

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

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