「……思えば、ノヴァーク博士はかなり先を読んでいますよね」
「何だい急に」
計数研究所二階の部屋で、話しかけてきたケレメンにノヴァーク博士は図を描いていた手を止めて返した。
「前の数を移す機械の話ですよ。あれの流用として、積を計算できるようになりました」
「ああ、その話か」
思い出したように言うノヴァーク博士に、ケレメンは少し傷ついていた。少し応用するだけで、とは言っていたが実際にはそれなりに時間をかけてやっと構築できたのである。
「ともかく、これが構成です」
: :
* = *
a b<
: : 1 1
* = * * = *
b c< b b<
: : 1 X X X
* = * * = * * = *
c >i c >d c c<
: : X X
* = * * = *
d >e d >d
: : X 1
* = * * = *
e f< e >e
: : X X _ 1
* = * * = * * = *
f >f f >f f g<
: X X X
* = * * = *
g h< g g<
: : 1 X X X
* = * * = * * = *
h c< h >f h c<
: : X 1 _ :
* = * * = * * = *
i >i i >i i .
「……さて、感想は?」
「初期状態が悪いと思いました」
「なるほど」
ノヴァーク博士は頷く。確かに、この遷移規則に従う装置には無駄が多い。例えば最初の状態aは次の手番でbに変化して移動するためだけに使われているし、そのbも掛けるべき二つの数を区切る記号まで移動するためだけのものだった。
「それと、これが動いている時の模式です」
__:11:111:_________
cbbbba<
__:1X:111:_________
>deeee
__:1X:111:_________
>fff
__:1X:11X:X________
hhg<
__:1X:1XX:X________
>ffff
__:1X:1XX:XX_______
hhhgg<
__:1X:XXX:XX_______
>ffffff
__:1X:XXX:XXX______
cchhhhggg<
__:XX:XXX:XXX______
>ddeeee
__:XX:11X:XXX______
>ffffff
__:XX:11X:XXXX_____
hhhhgg<
__:XX:1XX:XXXX_____
>fffffff
__:XX:1XX:XXXXX____
hhhhhhgg<
__:XX:XXX:XXXXX____
>fffffffff
__:XX:XXX:XXXXXX___
ccchhhhhhhhgg<
__:XX:XXX:XXXXXX___
>iiiiiiiiiiiiii
__:11:111:111111:__
.
「ん……ああ、下の行が始まった手番での
ケレメンが説明するまでもなく、ノヴァーク博士は一瞥してその内容を理解した。
「……さすがですね」
「一応はこの種の理論では文字通りに世界最先端を行っている専門家なのだよ、私は」
そう言いながらノヴァーク博士は紙を何回か見直した。
「もし君がもう少し効率的に積を求めたいとしたらどうする?」
「一つは文字を増やすことです。それが入力と出力の境目なのか、あるいは掛けられるべき二つの数の境界なのかを見分けるのが困難だったので、境界を超えた時に機械の内部状態を切り替えました」
「この部分だね」
そう言って、ノヴァーク博士は二枚目の紙のある行を指した。
__:1X:XXX:XXX______
cchhhhggg<
__:XX:XXX:XXX______
>ddeeee
__:XX:11X:XXX______
「掛ける二つの数の右側の分の移動が終わって、左側の数を処理したい状態の時、異なる意味を持つ区切り記号の区別ができないというわけか」
出力が終わった機械を戻す状態g、入力右側の数を処理する状態h、入力左側の数を処理する状態cは区切り記号の場所で切り替えられるようにケレメンは設計していた。そうでないと、折り返したときの状態を適切に決定できないためである。
「これについて、記号を変える以外の方法はあるのですか?」
「ない、はずだ。むしろ、今後無数の入力が考えられる以上はそのあたりをきちんと整える必要がある」
やっぱり難しい問題を解かされていたんじゃないか、とケレメンは少し疲れたように息を吐いた。
「多少文字数を増やせばもう少し表も……いや、そうすると結局遷移表の書くべき要素数は増えるか。なら、私が示した前提では十分良い解だろう」
そう言ってノヴァーク博士は自分の署名と日付を紙の下部に書き込むと、満足そうに厚紙の書類挟みに入れた。
「ところで、どうしてこういったものを?」
ケレメンは抱えていた疑問を口にした。確かにこれは計算の抽象的概念を取り扱うには良い模型なのだろうし、少しは頭を使うので最近取り組んでいる熱電子管装置の組み立ての息抜きにはなるのだが、その先にあるものがどうにも見えない状態だったのだ。
「前に、万能計算機械は全ての問題を解けるわけではない、という話をしたのを覚えているかい?」
かなり前のことだな、確か出会った日だっただろうか、とケレメンは記憶を探り、頷いた。
「ここで言う
「……適切な形、とは?」
「
「電信で表を送るようなものだと考えればいいでしょうか。一行目はこう、二行目はこう、といったように」
「概ねそれで間違っていない。ただ、いくつか修正できる点はあるけどね」
そう言って、ノヴァーク博士はまだ黒板に残っていた以前の計算機械の遷移表を見た。
: : 1 X X X _ _
* = * * = * * = * * = *
a a< a >b a a< a >c
: : 1 1 X X _ X
* = * * = * * = * * = *
b >b b >b b >b b a<
: : 1 1 X 1 _ :
* = * * = * * = * * = *
c >c c >c c >c c .
「この表の内容を伝えたいとしたら、君ならどうする?」
「機械の位置や等号といったものは事前に形式を共有しておけば何回も送る必要はないでしょう。例えば一番左上なら」
:a:a<
「ぐらいにまで省略してもいいでしょう」
このあたりの工夫は速いのだな、とノヴァーク博士は考えた。ケレメンがもともと郵便局で働いていて、記号の取り扱いには実用方面という偏りはあるものの習熟しているのがその原因だろう、と推察はできた。
「今の文字、今の状態、次の文字、次の状態、移動方向ということか。とはいえこの並びの順番自体に深い意味はない、というのはいいかい?」
「ええ」
「そして実際のところ、1やXという記号、あるいはaやbといった状態自体はただのわかりやすくするためのものに過ぎない、というのは問題ないかね?」
「……少し待ってください」
そう言って、ケレメンは先程ノヴァーク博士に渡した時の紙を作ったときのことを考えていた。
あの遷移表に出てくる文字を決める際、ケレメンは何回か遷移表の構築をやり直していた。その過程では内部状態は「1が出るまでずっと左」といった文のこともあった。最終的にそれは小文字で置き換えられたが、別にそうである必要もない。
長い文章であろうが一つの塊で扱うことができるのは、電信の経験から知っていた。単語も文章も電線を伝わる電流としては通電の長短にすぎない。それをどう解釈するかは人間側の問題であるし、条約や国際機関によって統一が目指されているものの、様々な解釈の方法が今なお存在していた。
「つまりあれですか、全てをええと……
「いや、今回は少し事情があってね。長さを揃えたい。そうするとどうしても二種類の文字を使う必要があるから、それなら二進法が使える。二進法については?」
「最低限であれば」
1、10、11、100、101、110、111といったように1と0だけで数を作る手法である、というぐらいの認識ではあったものの、ケレメンは数学分野の知識として、そして電信技術の観点からそのあたりを知っていた。
「文字が4つ、状態が終了を含めて4つ。それぞれ2個づつの文字があればよくて、右と左、あと移動しないことを含めるとこれについても2個の文字が必要になる。5つの状態をまとめるなら10文字だ。対応表を作るかい?」
「……別に、正しい表というのはありませんよね?」
ケレメンは白墨を手に取ってからノヴァーク博士に確認した。
「間違った表なら作れるがね。例えば、同じ文字に複数通りの表現があったり、あるいは異なる文字のはずなのに同じ表現がされていたり、という場合にはうまく機能しなくなるのはわかるだろう?」
「故障でたまにあるやつですよ、大抵は折れた針金あたりが挟まっているんです」
_ 00 . 00 > 00
: 01 a 01 < 01
1 10 b 10 . 10
X 11 c 11
: a : a <
01 01 01 01 01
「こういう形でいいでしょうか?」
「君はたぶん具体例を分析するほうが得意な性分なんだろうね」
白墨を置いたケレメンに、ノヴァーク博士は感心したように言った。