問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
ハミング符号の手順はおおまかに次の 3 つに分かれます。
(1) データを符号化する
(2) 誤りがあるかを判定する
(3) 誤り訂正をおこなう
この問題は、(2) の「誤りがあるかを判定する」という手順に対応します。
0, 1 のみを要素に持つ行列 (行ベクトル) w = [w_1 w_2 ... w_7] が与えられます。
まず、次の行列 H を用いて、行列 (行ベクトル) r = w✕H を計算してください。
この計算によって得られた r は 3 つの要素からなるベクトルです。
必要に応じて、後述する配列・リストを利用しても構いません。
(問題文はまだ続きます。)
// 行列 H, C++用
const vvi H = {{1, 0, 0},
{0, 1, 0},
{1, 1, 0},
{0, 0, 1},
{1, 0, 1},
{0, 1, 1},
{1, 1, 1}}
# 行列 H, Python 用
H = [[1, 0, 0],
[0, 1, 0],
[1, 1, 0],
[0, 0, 1],
[1, 0, 1],
[0, 1, 1],
[1, 1, 1]]
-1
を出力して終了してください。w_1 w_2 ... w_7
次のフォーマットに従って、出力を行ってください。
s_1 s_2 s_3
j
-1
を出力してください。 すべてのテストケースにおいて, 以下の条件をみたします
・w_i は 0, 1 (1 ≦ i ≦ 7)
・w は s = [0, 0, 0] か、q = s が成り立つような e_j が存在する入力のみが与えられる。
0 0 1 0 0 1 1
0 1 0
2
0 1 0 0 1 0 1
0 0 0
-1
0 1 1 1 1 0 0
0 0 0
-1