メディア

「岡山県」「福岡県」「福島県」を漢字1字でどう表す? ―― 都道府県名を1文字にコード化せよ(その2)組み込みエンジニアの現場力養成演習ドリル(17)(1/4 ページ)

今回は、「都道府県名の1文字でのコード化」を取り上げます。「岡山県」「福岡県」「福島県」はどう略すかは簡単ではありません。

» 2019年06月18日 10時00分 公開

はじめに

 表示パネルが小さい組み込み機器では、状態表示やエラー表示でとても苦労します。また、ソースコードの中で、データをコード化して処理する場合、どのようにデータ名をコード化するかも悩みますね。前回から、データや名称の短縮化、コード化を取り上げています。

 前回は、米国50州の名前の略称および、東京の地下鉄路線名の略称、コード化を取り上げました。米国でも、東京でも、コード化では苦労していましたね。特に、13も路線がある東京の地下鉄では、アルファベット1文字で路線名を表すのは大変で、苦肉の策や力業を使っていました。路線が将来、増える可能性を考え、拡張性、保守性を考慮して、路線名の1文字化の改善案を5つ考えました。後編となる今回は、「都道府県名の1文字でのコード化」を取り上げます。「岡山県」「福岡県」「福島県」はどう略すかは簡単ではありません。

 「ソフトウェアの一生(ライフサイクル)」で、機能拡張や変更をする保守フェーズの時間とコストが、開発全体の70%前後を占める現在、設計者は将来の保守性も考慮して、コード化を考える必要があります。例えば将来、“福山県”が増えても「1文字化」は可能なのか? 不可能ならどう対処するかなど、一歩踏み込んでコード化を考えます。

競輪の出走表

 筆者は、大阪で生まれ育った「純粋培養の大阪人」です。甲子園球場でタコ焼きを食べながら阪神タイガースを応援する生活を何十年も続けました(私が見に行くと、ほとんど負けますし、見に行かなくても負けます……)。読売ジャイアンツのファンが読む新聞が報知新聞、中日ドラゴンズファンは「中日スポーツ」、で、タイガースファンは『デイリースポーツ』です。これを読んで“セ界”(世界ではなく)の情勢をチェックするのです。

 日頃は、タイガース情報が載った1面から3面までしか読まないのですが、ものすごく暇なときは、中面に載っているギャンブル欄を見て、書いてある「専門用語」を推理、解読し、時間をつぶしています*1)。そんな中で気になったのが、競輪の出走表でした。

 図1に、スポーツ新聞によく出てくる競輪の出走表を示します(実物を見て筆者が創作したもの。全て仮名、架空のデータ)。

競輪の出走表 図1:競輪の出走表(筆者が作成、内容は全て架空)

 選手名以外のデータや数字以外で、唯一、意味が分かったのが、黄色で塗った「出場選手の出身(登録)都道府県名」です。都道府県名を1文字で表しています。これを見た瞬間、「島」は島根県か福島県か? 「崎」は長崎県か宮崎県か? 「長」は長野県か長崎県か? 「山」は、山形県、山口県、山梨県以外に、岡山県、富山県、和歌山県の可能性もあるぞと、大混乱しました*2)

 競輪の出走表での都道府県名の1文字化を分析しながら、1文字にコード化できる条件、コード化の手順、拡張性のあるコード化方式等を問題形式にして、順を追って見ていきましょう。複雑なテーマですが、グラフ化や図式表現を行うと、意外にシンプルになります。

*1)筆者は、競馬や競輪をやりません。理由は明快で、「長くやると、必ず負けるから」です。例えば、1枚100円の馬券は、25%を主催者がテラ銭として取り、社会福祉の拠出金、勝利者の賞金、関係者の人件費等に使い、残りの75%を的中者で山分けします。となると、馬券は買った瞬間、100円が75円になるのです。買い目によって、「当たる確率は低いけれど、配当が大きい」や「的中しやすいが低配当」がありますが、長く続けるほど、馬券1枚から得られる配当の期待値は75円に収束します。これは統計理論上、明らかで、エンジニアは職業上、当然、そう考えます。「ギャンブルの負けを長い期間をかけて、ゆっくり回収する」は、統計の法則に反するのです。なので私個人は、ギャンブルは「期待値へ収束する前の初期段階で勝ち逃げする」か「長くやる場合は、お金がかかる娯楽と納得して楽しむ」べきと思います。


*2)競輪では、他の選手と組み、グループとして連携して走るのが基本で、このグループを「ライン」と呼ぶそうです。ラインの基本が、同県、隣の県、師弟関係、競輪学校で同期の選手でグループを組むことです。特に近隣都道府県人との連携が多く、予想する場合は各選手の出身県とともに、その出身県の隣接県を知っていることが非常に重要とのこと。同じラインの選手が事前に打合わせるなんて、八百長ではないかと私には思えますが、直木賞、泉鏡花賞、川端康成文学賞を総なめにした阿佐田哲也(色川武大)や、同じく直木賞、柴田錬三郎賞、吉川英治文学賞を受賞した伊集院静のような熱烈な競輪愛好家に言わせると、「競輪は、選手の心理や状況まで読んで推理するので、『究極のギャンブル』なのだ」そうです。論理的な思考が癖になっているエンジニア系の人間には、少しハードルの高い領域ですね。


都道府県を1文字化できる条件

 都道府県の名前を1文字にコード化する場合、「1文字化できる条件」を論理的に、数学的に解明する必要があります。以下、問題を順に考えながら、この条件を明らかにします。

第1問【制限時間:30分】

日本の47都道府県名で、構成している漢字が他と同じものを全て挙げよ。例えば、岡山県と山口県は「山」を共有している。共有関係のある都道府県を全て洗い出せ。

       1|2|3|4 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.