ITパスポート試験 / 平成21年度 秋期 ITパスポート試験 / 問60
certification-simodake-work

平成21年度 秋期 ITパスポート試験 問60 解説 味覚の符号化

設問図

“甘味”,“うま味”,“塩味”,“酸味”,“苦味”の5種類の味覚を,6ビット(2進数で6けた)の数値で符号化する。これらを組み合わせた複合味を,数値の加減算で表現できるようにしたい。例えば,“甘味”と“酸味”を組み合わせた“甘酸っぱい”という複合味の符号を,それぞれの数値を加算して表現するとともに,逆に“甘酸っぱい”から“甘味”成分を取り除いた“酸味”を減算で表現できるようにしたい。味覚の符号として,適切なものはどれか。

選択肢図
  1. ア.
  2. イ.
  3. ウ. ✓ 正答
  4. エ.

解説

この問題は、各味覚を独立したビットとして割り当てることで解決します。正解はウです。具体的には、それぞれの味覚に対して、20=12^0=121=22^1=222=42^2=423=82^3=824=162^4=16 という重みを割り振ります。これにより、どの味覚が含まれているかをビットの組み合わせで一意に表現できるようになります。

ビットによるフラグ管理の考え方

コンピュータの世界では、状態を管理するためにビット演算が頻繁に使われます。今回のケースでは、5種類の味覚をそれぞれ別のビット(0番目〜4番目の桁)に割り当てることで、情報の混在を防いでいます。

もし、選択肢のアのように 1+2=31+2=3 となるような重複する数値を割り当ててしまうと、後で「3」という数値を見たときに、それが「うま味(1)と塩味(2)の組み合わせ」なのか、それとも「酸味(3)という別の単一の味」なのかを判別できなくなってしまいます。

各味覚を 2n2^n という特定のビット位置に固定することで、足し算(論理和に近い考え方)で複数の味を混ぜ、引き算(論理積と否定に近い考え方)で特定の味を取り除くという操作が、他の味覚に影響を与えずに可能になります。

思考プロセス

問題文にある「加算して表現する」「逆に減算で表現できる」という条件から、以下の思考手順で正解を導き出します。

  1. 独立性の確保:味覚同士を足し合わせたときに、他の味覚を誤って作り出さないこと。
  2. 逆算の可逆性:特定の味を引いたときに、残りの味が正確に残ること。
  3. 数値の比較:選択肢の中で、どのビットも重ならず、かつ 22 のべき乗の形になっているものを探す。

選択肢のウを見ると、それぞれが 000001,000010,000100,001000,010000000001, 000010, 000100, 001000, 010000 となっており、これはまさに 1,2,4,8,161, 2, 4, 8, 16 を示しています。この形式であれば、例えば「甘味(1)」と「酸味(8)」を足すと「9 (10011001)」となり、ここから「1」を引けば「8」が残り、元の味を正確に抽出できます。

ビット演算の実践的な活用

この考え方は、ITの現場で非常に広く応用されています。例えば、OSのファイルアクセス権限(読み取り、書き込み、実行)や、プログラミング言語における複数のフラグ設定などで活用されます。

具体的な例として、ファイルの権限を「読み取り(4)」「書き込み(2)」「実行(1)」と定義すると、権限の合計値だけで「読み書き可能(6)」「全権限あり(7)」といった状態を1つの数値で管理できます。この手法は、メモリの節約や効率的な条件判定を行うために非常に重要です。ITパスポート試験でも、こうした「情報をいかに効率よく数値化して扱うか」という概念を理解しておくことは、システム設計の基礎的な素養を問う上で不可欠な要素となっています。

参考リンク

学習の記録にははてなブックマーク!

気づいたこと・覚えたことをコメントにメモしよう