ソビエトロシアの3進コンピュータ

ロシア人の同僚に、ロシアには3進コンピュータがあったらしいよね、という話をしたら、僕の大学の教授がそのコンピュータの発明者と一緒に仕事してたよ、と言われたことがあった。ソビエト連邦には3進数のコンピュータが実際にあったのだ。その奇妙な機械についてちょっと書いてみよう。

普通の2進コンピュータでは、数の1桁を1ビットといって、1ビットで2つのパターンを表すことができる。同じように、3進コンピュータでは、数の1桁をトリット(trit)といって、1トリットで3つのパターンを表すことができる。

3進コンピュータで最も興味深いのは、負の数を表すための特別な符号ビットがいらないことだ。2進コンピュータでは最上位ビットが1なら数全体が負を表している、みたいな特別なルールが必要なのだが、3進コンピュータでは、各桁が-1, 0, 1のどれかを表していることにすれば、自然と負の数が表現できてしまう。

説明をコンパクトに書くために、-1を~と表記することにしよう。~0という2桁の3進数は、1の桁が0、3の桁が-1なので、3 * (-1) + 0 = -3を表しているということになる。同じように、1~という3進数は3 * 1 + (-1) = 2を表している。11なら3 * 1 + 1 = 4だ。

3進数2桁の数をすべて考えてみると小さい順から~~, ~0, ~1, 0~, 00, 01, 1~, 10, 11となるのだが、これらはそれぞれ-4, -3, -2, -1, 0, 1, 2, 3, 4を表している。感動的にきちんと一定の範囲の整数がすべて表現されている。これはもっと大きな桁数でも一般に成り立つ。こういう仕組みにより3進コンピュータでは符号ビットがいらないのだ。

ソビエト連邦で1950年代に開発された3進コンピュータはSetun (Сетунь)という名前だった。その後、特にそれに続く3進コンピュータは作られずに終わった。2進に対抗できる速度や記憶密度を持つ3進ベースの演算素子や記憶素子がなければ、3進コンピュータというのは単に遅くて奇妙なコンピュータにすぎなかったのだ。とはいえ、Setunは実用に供された非2進コンピュータという意味で、十分みんなの記憶に留められておくべき特筆すべきマシンだと思う。

いいなと思ったら応援しよう!

ピックアップされています

自分のお気に3

  • 1,020本

コメント

コメントするには、 ログイン または 会員登録 をお願いします。
ソビエトロシアの3進コンピュータ|Rui Ueyama
word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1