• WEB

数字で語呂合わせ ポート番号メーカー その2

  • どらくま
    どらくま インフラちーむ
  • このエントリーをはてなブックマークに追加
数字で語呂合わせ ポート番号メーカー

こんにちは、インフラちーむのどらくまです。

最近、5年ぶりくらいに車の運転をしました。
常にカーナビ頼りで、似たようなところを通っても、まったく道を覚えていないため、一緒にいた人にはかわいそうなことをしましたが、とりあえず人を轢かないで良かったです。

前回のブログにて、言葉を入力したら自動的にポート番号にする“ポート番号メーカー”を紹介いたしました。

数字で語呂合わせ ポート番号メーカー その1

ポート番号メーカーはこちら

このポート番号メーカー、何かしらの数字を語呂合わせで覚える、というよりも、任意で決めた数字を覚えておく時などにも使えます。

数字を何桁も覚えるのは大変ですが、1つの言葉を覚えるのは苦にならないですよね。

数字は忘れてしまっても、言葉さえ覚えておけばこのツールで変換し、数字を複合化することが可能です。

つまり、逆語呂合わせツールとも言えるかもしれません。

今回はそのポート番号メーカーの中身、どのように言葉をポート番号へ変換しているのか、これを見ていきたいと思います。

言葉をそのまま数字に?

ポート番号メーカー画像

学生の頃、歴史の授業で年表を覚える際、語呂合わせなどで覚えたと思います。
そのときの語呂合わせの作り方を思い出してください。
西暦をそのまま言葉にするのではなく、数字を分解して、文字を当てようとしていたはずです。

私の唯一覚えているものは、1853年の「いやでござんすペリーさん」。

つまり、1853をまるごと別の言葉に変換するのではなく、「1853」を「1」「8」「5」「3」とバラバラに分解していたかと思います。

「1」に当てはまる言葉は何かな?

「8」に結びつく文字は何だろう?

などと、別々に考えた結果、最終的にそれを組み合わせ、「1853」という数字を「いやでござんす」という語呂合わせにしていたのではないでしょうか。

ポート番号メーカーを作り始めた際も、年表の語呂合わせと同じ理屈で作れば簡単だろう、とそんな軽い気持ちで始めました。

最初に思いついた言葉が「ふなっしー」だったので、「ふなっしー」を一文字ずつ数字に分解です。

「ふ」だったら、ふたつとかあるし「2」かな。

「な」だったら「7」決定でしょ。

「っ」は、ないようなもんだし、いいや、パス。

「し」だったら「4」で間違いない。

「ー」見なかったことにしよう。

など割り当てていき274で確定しました。

とはいっても、こんな簡単なら、ポート番号メーカーなんぞ使わなくても数字に変換できますね。

問題は一文字ごと数字に分解できなかったときです。

一文字ずつ分解するのであれば楽だけど…

ポート番号メーカー画像

入力された言葉に「きゅう」という文字が入っていた場合を見てみたいと思います。

「き」「ゅ」「う」

と、文字をすべてバラバラにして数字に変換するよりも、語呂合わせの覚えやすさから「きゅう」はそのまま「9」にしたほうが良い気がします。

となると、複数の文字で1セットにして、数字に変換する必要も出てきますね。
この複数の文字で1セット(以下より“複数文字”と呼びます)がなかなか厄介です。

簡単に考えると、複数文字になったもの以外を1文字ずつ分解すれば良い気がします。
ところがそう簡単にはいきません。

以下の例を見てみましょう。

【あいちきゅうはく】

この言葉には、複数文字が4つ含まれています。

「あい」……1
「いち」……1
「きゅ」……9
「きゅう」…9

の4つです。

何が言いたいのか?

つまり複数文字がかぶる場合がある、ということです。

今回はそれほど複雑ではありませんが、

あい・ち・きゅう・は・く
あい・ち・きゅ・う・は・く
あ・いち・きゅう・は・く
あ・いち・きゅ・う・は・く

など、複数文字によって、分解方法がたくさん出てきてしまうのです。

こうなってしまうと、どこを複数文字として変換して、どこを一文字で分解したらいいのか、よくわからなくなってきます。

そのため、ポート番号メーカーでは、以下のように設定しました。

例)「あいちきゅうはく(愛・地球博)」の場合

  1. 複数文字をピックアップ
    →今回の場合は「あい」「いち」「きゅ」「きゅう」の4つ
  2. ピックアップされた複数文字は最初の文字から数えて何番目にあるかを確認
    →「あい」は1番目、「いち」は2番目、「きゅ」と「きゅう」は4番目
  3. 最初の文字に近い複数文字をキープ
    →複数文字は1番目と2番目と4番目にあるため、1番目の「あい」をキープ
  4. もしキープした複数文字が2つ以上ある場合は、文字数の多いものを優先する
    →例えば4番めの「きゅ」と「きゅう」であれば「きゅ」は2文字、「きゅう」は3文字なので、「きゅう」を優先的にキープ
  5. キープした複数文字まで分解(複数文字以外はすべて一文字で分解)
    →あい
  6. 残った文字に、複数文字が存在する場合は1.に戻る
    →残った文字は、ち・き・ゅ・う・は・く、「きゅ」と「きゅう」が複数文字なので再度1.に戻る

複数文字が残っているのであれば、1~6を永遠に繰り返します。
そして、複数文字がなくなったら残った文字をすべて一文字で分解します。

今回の場合ですと、1~6を繰り返した結果、以下のように分解できました。

あい・ち・きゅう・は・く

この分解した文字ごとに、数字に置き換えポート番号に変換しています。

分解完了、あとは数字に変換するだけ?

ポート番号メーカー画像

分解できて良かったね、で済めばいいのですが、まだまだ問題は出てきます。

あい・ち・きゅう・は・く

今回は5つに分解できました。
普通に考えれば5桁の数字になりますね。

ポート番号は0~65535までしか使えませんが、5桁であれば大丈夫そうです。
とはいえ、5つ以上に分解される場合もあることは容易に想像できます。

となると、何かしらのルールに則って、使う文字、使わない文字を決めなければなりません。

では、どのように決めればうまくいくのでしょうか。
それは、また次回に……。

このエントリーをはてなブックマークに追加

どらくまが最近書いた記事

WRITERS POSTS もっと見る

他にもこんな記事が読まれています!

  • WEB
  • マーケティング
  • サーバー・ネットワーク
  • ライフスタイル
  • お知らせ