roombaの日記

読書・非線形科学・プログラミング・アート・etc...

モールス符号の「地図」

謎の遺跡

ある遺跡を考えます。唯一の入口からその遺跡の中に入ると2つの扉があり、扉にはそれぞれ「・」「ー」という2種類の文字が書いてあります。
f:id:roomba:20150728201135j:plain
試しに「・」と書かれた扉を開き、隣の部屋に移動すると、またもや「・」「ー」と書かれた2つの扉があります。先ほどの部屋と違うのは、扉と扉の間に「E」と書かれていることです。
f:id:roomba:20150728201136j:plain
今度は「ー」と書かれた扉を開き、隣の部屋に移動すると、やっぱり「・」「ー」と書かれた2つの扉があって、その間には「A」という文字が書かれていました。

……この遺跡を探検すると、どのような間取りになっているのでしょうか?

遺跡の「地図」

ある人がこの遺跡を調査した結果、以下の地図のように部屋がつながっていることが判明しました。一番上が入口の中の部屋で、下に行くほど遺跡の奥に対応します。
f:id:roomba:20150728201132j:plain

この地図を使えば、好きな部屋に迷わず行くことが可能になります。
たとえば、「A」と書かれた部屋に行きたければ、最初に「・」の扉を開き、次に「ー」の扉を開けばよいことになります。この経路を地図上に描くと、以下のようになります。
f:id:roomba:20150728201133j:plain

他にも、「B」と書かれた部屋に行きたければ、最初に「ー」の扉を開き、それから「・」→「・」→「・」と扉を開いていけばよいことになりますね(下図)。
f:id:roomba:20150728201134j:plain

それ以外のどのアルファベットの場合にも、適切な道筋を辿ることによってそのアルファベットが書かれた部屋に行くことが可能です。

地図上の道筋リストとモールス符号

ここで、「Aと書かれた部屋に行く道筋」「Bと書かれた部屋に行く道筋」……「Zと書かれた部屋に行く道筋」をリストアップしてみます。前章の例では、「・」→「ー」と扉を開けばAの部屋に辿り着くので

A: ・ー

となり、「ー」→「・」→「・」→「・」と扉を開けばBの部屋に辿り着くので

B: ー・・・

のようになります。同様に全てのアルファベットについてリストアップすると、以下の表のようになります。先ほどの「地図」と比べてみて下さい。

文字道筋文字道筋
A・-N-・
B-・・・O---
C-・-・P・--・
D-・・Q--・-
ER・-・
F・・-・S・・・
G--・T
H・・・・U・・-
I・・V・・・-
J・---W・--
K-・-X-・・-
L・-・・Y-・--
M--Z--・・

勘のいい方は気が付いたかもしれませんが、これはモールス符号の対応表に他なりません。…というか、タイトルに思いっきり「モールス符号」と書いちゃっているので、何を勿体ぶってるんだという感じですね。

「地図」を用いたモールス信号の解読

前章で述べた「道筋リスト」がモールス符号の対応表であるという事実から、冒頭の遺跡の正体はモールス信号の解読装置であったと言うことができます。なぜなら、例えば「-・-・」というモールス信号が与えられたとすれば、「-・-・」の順に扉を開いて行った先に解読後のアルファベット「C」を見つけることができるからです。

遺跡が「・」と「ー」によるモールス信号の解読装置であることが分かったところで、先ほどの「地図」を見直してみましょう。
f:id:roomba:20150728201132j:plain


この地図は、一般的なモールス符号表よりもモールス信号の解読に適しています。なぜなら、地図の一番上からスタートし、「・」や「ー」といった信号を受け取るたびに枝分かれ先へ進んでいけば、行き着いた先のアルファベットを見るだけで解読できるからです。同じ解読作業を以下の表(再掲)で行おうとすると、暗記でもしていない限り大変だと思います。

文字道筋文字道筋
A・-N-・
B-・・・O---
C-・-・P・--・
D-・・Q--・-
ER・-・
F・・-・S・・・
G--・T
H・・・・U・・-
I・・V・・・-
J・---W・--
K-・-X-・・-
L・-・・Y-・--
M--Z--・・

逆に、「アルファベット→モールス信号」の変換を行うには、アルファベット順に並んでいる表の方が良いでしょう。一長一短ですね。

なぜこのように符号化されているのか?

再び「地図」を見てみます。

f:id:roomba:20150728201132j:plain

これを見ると、なぜA〜Zがこんなにバラバラに配置されているのだろう?という疑問が生じます。上からABCと並べればよさそうなのに、2段目にEとT、3段目にはI、A、N、Mといった配置になっています。

その答えは、Wikipediaの以下の記述にあります。

策定については、標準的な英文におけるアルファベットの出現頻度に応じて符号化されており、よく出現する文字ほど短い符号で表示される。例を挙げると、Eは(・)、Tは(-)とそれぞれ1符号と最短である。逆に使用頻度が少ないと思われるQは(--・-)、Jは(・---)と長い符号が制定されている。

モールス符号 - Wikipedia


なるほど、使用頻度の高い文字が短い符号で表せるようになっていたわけですね。納得納得。

おわりに

本記事のようにモールス符号木構造?で表した図はいくらでもあるだろうと思っていたのですが、適当にググっても見当たらなくてケシカランと思い、記事にしてみました。

なお、冒頭の遺跡と扉のメタファーは以下の本を真似しました(この本にモールス符号に関する記述があるわけではありません)。まだ読み始めたところですが、物語を通してオートマトン形式言語を学べる良書の予感がします。