チューリングマシンの動作を数式で表現しようプロジェクト7
大事な関数を構成するのを忘れていたので、今日はそれについて。
x が偶数であるとき 1、そうでないとき 0 を返す関数 even と、奇数について同様の関数 odd を次のように定義しますよ。
次に、ヘッドが指し示すテープのマス目の番号が x であるとき、ヘッドを右または左に動かしたあとのヘッドが指し示すテープのマス目の番号を返す関数 Tindex を構成するため、テープのマス目に次のように番号付けします。
…7,5,3,1,2,4,6,8…
すると、テープのマス目の番号が x のとき、
右に移動したあとのマス目の番号は
x が偶数⇒ x + 2
x = 1 ⇒ x + 1
x が 1 以外の奇数⇒ x - 2
左に移動したあとのマス目の番号は
x が奇数⇒ x + 2
x = 2 ⇒ x - 1
x が 2 以外の偶数⇒ x - 2
で表せるので、右移動を 0、左移動を 1 で表し、それらを渡る変数を m とおくと
となります。
論理積と論理和が掛け算と足し算に上手く対応しておりますなぁ。
次こそ、実際にチューリングマシンの動作を数式で表現したいと思います。