数字の楽な覚え方

去年買った「珠玉のプログラミング」をついに読み始めた.実はプログラミングの本というよりは問題のモデル化,問題解決の本といったほうがふさわしく,早速ハマっている.

で,読んでいるとアメリカのプッシュホンの話がでてきた.アメリカのプッシュホンは,携帯みたいにアルファベットが割り当てられていて,文字の伝送だかができるようになっている.

 1   2   3
    ABC DEF
 4   5   6
GHI JKL MNO
 7   8   9
PRS TUV WXY
 *   0   #
   OPER

で,驚いたのは,電話番号などを覚えるのに,例えば「43556」なら「HELLO」などと覚えるというのである.なるほどと思った.英語は日本語みたいに「4126」→「よいふろ」みたいなエンコードができないから,円周率は "How I wish I could calculate pi" などとやって 3.141592 と覚えたりして,「産医師異国に向かふ,産後厄無く産婦御社に…」と比べてえらい効率悪いな,と思ってたのだが,こういうエンコードがあったのだ.むしろ,日本の語呂合わせは単射じゃないので,デコードの時に「あれ,『い』は 1 だっけ,5 だっけ」みたいなことになりがちなのだが,プッシュホンエンコードでは一意にデコードできる.そして,エンコードに自由度があるから,例えば "GEKKO" などとしてもよい (これだと Gecko と間違えそうだけど).

さて,携帯電話をぼんやり眺めながら思った.キートップに仮名が書いてある.仮名で同じことをやるとどうだろうか? アルファベットは隣り合う文字間にかなりの制約がある (だから隠れ Markov なんかが通用する) が,仮名はそれが緩いから意味のある単語を作りやすい.さらに,1 つの数字に対する自由度は,アルファベット方式が 3 に対し仮名方式は 5 (濁点 OK にすればさらに増える) である.いわゆる語呂合わせよりも自由度が高くかつ確実なエンコードが可能になるのではないか.「43556」なら「手品の日」「土佐の伸び」…うーむ,かえって覚えづらいな(激ぉ.

まあ,場合によっては年号や暗唱番号を覚えるのに,どうしても語呂合わせが浮かばないならこの方法を使う手もあるかな,と.幸い,このエンコード表は誰もが常に持ち歩くようになったことだし.

けっこうみんな思いついてそうなネタなのに,検索しても出て来ないなあ.もはや当たり前すぎて誰も書いてませんか.そうですか.