SkillStack
テクノロジ系4 / 80問

応用情報技術者試験 令和6年度 春期 午前 問4

符号長 7 ビット、情報ビット数 4 ビットのハミング符号による誤り訂正の方法を、次のとおりとする。

受信した 7 ビットの符号語 x₁ x₂ x₃ x₄ x₅ x₆ x₇(xₖ = 0 又は 1)に対して  c₀ = x₁+x₃+x₅+x₇  c₁ = x₂+x₃+x₆+x₇  c₂ = x₄+x₅+x₆+x₇ (いずれも mod 2 での計算) を計算し、c₀、c₁、c₂ の中に少なくとも一つは 0 でないものがある場合には、  i = c₀+c₁×2+c₂×4 を求めて、左から i ビット目を反転することによって誤りを訂正する。 受信した符号語が 1000101 であった場合、誤り訂正後の符号語はどれか。

選択肢を押すと答え合わせができます。

正解と解説を見る

【正解】エ

受信語1000101を左から順に対応させると、x₁=1、x₂=0、x₃=0、x₄=0、x₅=1、x₆=0、x₇=1です。これを検査式へ代入します。 c₀=x₁+x₃+x₅+x₇=1+0+1+1=3 mod 2=1、 c₁=x₂+x₃+x₆+x₇=0+0+0+1=1 mod 2=1、 c₂=x₄+x₅+x₆+x₇=0+1+0+1=2 mod 2=0です。 したがって、誤り位置はi=c₀+2c₁+4c₂=1+2×1+4×0=3です。左から3ビット目の0を1へ反転すると1010101となるので、正解はエです。

アの1000001は誤りです。これは元の受信語の左から5ビット目を反転した結果であり、検査値から得られる誤り位置3と一致しません。

イの1000101は誤りです。これは受信語を訂正していません。訂正不要なのはc₀、c₁、c₂が全て0の場合ですが、今回は1、1、0です。

ウの1001101は誤りです。これは左から4ビット目を反転した結果であり、i=4となる検査値の場合の訂正です。

【ポイント】 mod 2の加算では、合計が偶数なら0、奇数なら1になります。 三つの検査値をc₂c₁c₀の2進数とみなすと、今回は011₂=3です。 ハミング符号は、1ビットの誤り位置を特定して訂正できます。

出典:令和6年度 春期 応用情報技術者試験 午前 問4
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。

この回の80問を、アプリで通しで解く

  • 本番と同じ問題数・制限時間で通し演習(模試モード)
  • 間違えた問題は自動で「復習すべき問題」に回る
  • 解説で分からない点はAIに質問できる
SkillStackで無料で始める