情報理論・符号理論の問題
記号 を使う 2 元符号を考える。長さ の符号語が 個、長さ の符号語が 個、長さ の符号語が 個からなる語頭符号(瞬時符号)を作りたい。ただし、どの 2 つの符号語も互いに異なるものとする。このような語頭符号が存在する 0 以上の整数 のうち、最大のものを求めよ。
この問題で使うもの
- 語頭符号とクラフトの不等式(説明と入口の問題)
この問題を解けるようになるまで(12 技能)
読み込み中…
右端(太枠)がこの問題で使う技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。
ヒント
行き詰まったら、上から順に 1 つずつ開いてください。
ヒント 1
語頭符号が存在するかどうかは、クラフトの不等式 で判定できます。
ヒント 2
を について解きます。
ヒント 3
左辺は になります。これが 以下となる最大の整数 を考え、実際に符号語が作れることも確かめましょう。
答えと解説
答えを見る
どこでつまずきましたか?(選ぶと、戻る場所を案内します)
解説を読む
クラフトの不等式:符号長 の 元語頭符号が存在するための必要十分条件は
である。ここでは である。
ステップ 1(不等式を立てる):長さ が 個、長さ が 個、長さ が 個なので
ステップ 2(計算する):, , より、左辺は
よって 、すなわち である。
ステップ 3(存在を確かめる):クラフトの不等式は十分条件でもあるので、 のとき語頭符号が存在する。実際に短い符号語から順に割り当てると
- 長さ :
- 長さ :
- 長さ :
となり、どの符号語も他の符号語の語頭になっていない。 以上では不等式が成り立たないので語頭符号は存在しない。
したがって、最大の は である。
別解
クラフトの不等式より、2 元語頭符号が存在する条件は である。ここでは となる。
整理すると より 、すなわち となる。
実際に構成して確かめる。長さ 2 の語として 00, 01 を選ぶ。長さ 3 の語として 100 を選ぶ。残りは 101, 11 で始まる語であり、長さ 4 の語は 1010, 1011, 1100, 1101, 1110, 1111 の 6 個になる。これらは 00, 01, 100 のいずれも接頭辞に持たず、互いに接頭辞の関係にもない。よって は構成できる。
では和が となり、存在しない。
したがって最大の は 6 である。