チューリングマシンの動作を数式で表現しようプロジェクト6

前回の記事では、チューリングマシンのインデックス e が与えられたとき、その状態数 n と、状態数が n のチューリングマシンの中での順番 k を求める関数をそれぞれ構成しました。
今回は、n と k とチューリングマシンの状態 q とテープに書き込まれた記号 s から、テープに書き込む記号 Symbol(e,q,s) とチューリングマシンの次の動作 Move(e,q,s) とチューリングマシンの次の状態 State(e,q,s) を求める関数を構成したいと思います。
今、記号と動作と状態はそれぞれ 2 通り、2 通り、n 通りあるので、それらの組合せは 4n 通りです。
そこで、まずは e と q と s から組合せの順番を求める関数を次のように構成します。
\rm{C}(e,q,s) = \rm{Mod}(\rm{Quotient}(k-1,(4n)^{q(s+1)-1}),4n)+1
ここで、k=\rm{Order}(e)n=\rm{Statenum}(e) かつ 1 \leq \rm{C}(e,q,s) \leq 4n です。
q(s+1)は全部で 2n 通りあり、それぞれが状態と記号の組に対応しています。
そして、k を 2n 桁の 4n 真数で表された数だと考えているわけなのです。
この C を使うと、あとは次のように構成できます。
テープに書き込む記号:
\rm{Symbol}(e,q,s) = \rm{Mod}(c-1,2)
チューリングマシンの次の動作:
\rm{Move}(e,q,s) = \rm{Mod}(\rm{Quotient}(c-1,2),2)
チューリングマシンの次の状態:
 \rm{State}(e,q,s) = \rm{Mod}(\rm{Quotient}(c-1,4),n)+1
ここで、c = \rm{C}(e,q,s) です。
ちゃんと説明するのはめんどいので省略っ!
次回は、いよいよ、今まで作ってきた関数を組み合わせて、チューリングマシンの動作を表現してみたいと思います。