ハミング距離と誤り訂正
解説
ポイント
ハミング距離の数え方と,ハミング符号で1ビットの誤りを見つけて直す方法を問う問題です。
考え方と解き方
X1〜X4 が送りたい情報,X5〜X7 は確かめ用の検査ビットです。
受け取った X1〜X4 から検査ビットを計算し直し,受け取った X5〜X7 と比べると,どこが誤ったか分かります。
ア:「1110101」と「1001111」を1桁ずつ比べると,違うのは 2,3,4,6 桁目の 4 か所です。
イ:受信「1000010」は X1=1,X2〜X5=0,X6=1,X7=0 です。
- 計算し直すと X5=0+0+0=0,X6=1+0+0=1,X7=1+0+0=1 で「011」
- 受け取った X5 X6 X7 は「010」なので,ずれているのは X7 だけ
- 情報ビットが誤ると,それを含む検査ビットが 2 つ以上ずれます。1 つだけなら検査ビット X7 自身の誤りです
- X7 を 1 に直して「1000011」。答えは ア 4,イ「1000011」
ほかの選択肢
①(「0000010」):X1 を直した形ですが,X1 が誤りなら X6 と X7 の両方がずれるはずで,合いません。
覚えておくこと
- ハミング距離:2つのビット列を1桁ずつ比べ,違う桁の数を数えたもの
- mod 2 の足し算:1 の個数が偶数なら 0,奇数なら 1
- 検査ビットが1つだけずれていれば,その検査ビット自身の誤り。2つ以上ずれていれば,共通して含まれる情報ビットの誤り
出典:令和4年度 技術士第一次試験 基礎科目 I-2-4(公益社団法人日本技術士会) ジャンル:情報・アルゴリズム