技能一覧 › 大学数学 情報理論・符号理論

語頭符号とクラフトの不等式

符号長 の 元語頭符号(瞬時符号)が存在するかを、クラフトの不等式 で判定でき、存在するときは符号語を 1 組作れる

前提

この技能までの道筋(11 技能)
算数中学高校大学大学院

読み込み中…

右端(太枠)がこの技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。

一覧で見る(前提が先)
  1. 分数のたし算・ひき算 (算数 計算と数のきまり)
  2. 小数の四則計算 (算数 計算と数のきまり)
  3. 正負の数の加法・減法 (中学数学 数と式)
  4. 分数のかけ算・わり算 (算数 計算と数のきまり)
  5. 四則の混じった計算の順序 (算数 計算と数のきまり)
  6. 正負の数の乗除・累乗と四則混合 (中学数学 数と式)
  7. 約数の見つけ方 (算数 整数の性質)
  8. 素因数分解と約数の個数 (算数 整数の性質)
  9. 平方根の意味と根号の簡単化 (中学数学 数と式)
  10. 根号の乗除と加減 (中学数学 数と式)
  11. 指数の拡張と指数関数 (数学II 指数関数と対数関数)

説明

語頭符号(瞬時符号)とは、どの符号語も他の符号語の先頭部分(語頭)になっていない符号のことです。この性質があれば、受け取った記号列を先頭から読み、符号語に一致した時点ですぐに区切って解読できます。この技能では、符号長 を指定したときに、 種類の記号 で作る語頭符号が存在するかを、クラフトの不等式 で判定します。存在する場合は、符号語を実際に 1 組作ります。データ圧縮で記号ごとの符号長を設計するときの基本になる考え方です。

なぜそうしてよいのか

長さ の符号語 (各 は の整数)に、数 を対応させます。これを 進小数 と呼びます。 は 以上 以下の整数で、この整数を 進法で 桁に書いた並びがちょうど です。さらに と定め、これを の区間と呼びます。 の長さは です。この議論は 進展開の一意性を使わず、数の不等式だけで進めます。

要になるのは次の評価です。各桁が 以下なので、 が成り立ちます。
- (ア) が の語頭のとき( の長さ )、 です。よって かつ となり、 です。
- (イ) (長さ )と (長さ )のどちらも他方の語頭でないとき、両方に共通する長さの範囲内に、初めて食い違う桁 があります。 としてよく、共通部分を とおきます。上の評価から となります。つまり は より完全に左にあり、両者は重なりません。
- (ウ) として評価を使うと となるので、どの区間も に収まります。

必要性:語頭符号なら、(イ) より区間どうしは重なりません。左端の小さい順に並べると、各区間は前の区間の右端以降から始まります。 の中に重ならずに並ぶので、長さの合計は 1 以下、すなわち です。

十分性: とし、長さを と並べて ()とおきます。 は、 なので整数です。また より なので、 は 進法でちょうど 桁に書けます(頭に 0 を補う)。その並びを とすると で、区間 は隙間なく順に並び、互いに重なりません。もし が の語頭なら、(ア) より となって重なってしまうので、これは起こりません。よって語頭符号になります。

手順

  1. クラフト和 を計算する。

  2. なら語頭符号は存在し、 なら存在しないと判定する(等号 の場合も存在する)。

  3. 符号語を作るときは、符号長を小さい順 に並べ替える。

  4. 累積和 ()を求め、整数 を計算する。 で順に求めてもよい。

  5. を で割り、余りを書き留めて商をまた で割る、ということを商が 0 になるまで繰り返す。余りを逆順に並べたものが 進表記である。

  6. の 進表記がちょうど 桁になるよう、桁が足りなければ頭に 0 を補う。その 桁の並びを 番目の符号語とする。

例題

3 元(記号 )の語頭符号で、符号長が の 7 個の符号語をもつものを作りたい。そのような語頭符号が存在する最小の正の整数 を求めよ。

例題の解答

【手順 1】 以外の 6 個のクラフト和を計算します。 なので、全体は です。

【手順 2】存在の条件は 、すなわち です。
- のとき: なので不成立で、存在しません。
- のとき: なので成立し、存在します。

よって最小の は です。

確認として、 で実際に符号を作ります。
【手順 3】長さを並べ替えると です。

【手順 4〜6】 から を求め、3 進法で 桁に書きます。
- : を 1 桁にして 。
- :。 余り 、 余り なので 。
- : で 。
- : で 。
- : で 。
- :。 余り 、 余り 、 余り なので 。
- :。 余り 、 余り 、 余り なので 。

得られた符号 は、どの語も他の語の語頭になっていないので、確かに語頭符号です。

答え:

よくある誤り

この説明は AI が書き、別の AI が例題を独立に解いて答えを確かめ、説明を一歩ずつ査読しました。

入口の問題

この技能を使う問題

この技能の次に学べること