HOME»応用情報技術者試験掲示板»令和元年秋 問23について
投稿する

令和元年秋 問23について [5630]

 さしみさん(No.1) 
令和元年秋問23について質問です。
https://www.ap-siken.com/s/kakomon/01_aki/q23.html

仮の値、101を入力して結果をもとめてイ、ウまでに絞ることができたのですが、その後、100奇数パリティビットを入力する意味がわかりません。

なぜ奇数パリティビットで確認して、その入力結果が「1」のウが正解なのでしょうか。
2025.02.14 00:29
納豆のたれさん(No.2) 
101で絞れなかったので、別の値で絞り込もうとしているだけです。
偶数パリティ回路に100を代入したらパリティが1になるはずなので、そうなるかどうかを確認しているのです。
しかし、実際に解説で入力しているのは111ですね。

もっとよい解法
「パリティの計算にはXORを使う」と知っていれば、その時点でウとエに絞れます。
その上でウとエをよく見ると、違いは最終段に反転素子(否定器)があるかないかです。
つまり、ウとエのどちから一方が偶数パリティ回路で、他方が奇数パリティ回路です。
ウに適当に入力して....
・偶数パリティになったらウが正解。
・奇数パリティになってしまったらエが正解。
代入を1回実行するだけで答えがわかります。

時間を削りにくる問題は工夫して早く解いたほうがよいと思います。
「パリティの計算にはXORを使う」というのはぜひ覚えましょう。
2025.02.14 03:13
ピノキオさん(No.3) 
私も勉強中の人間なので間違ったこと言うかもしれませんすみません。

偶数パリティビットは送るデータの1の数が偶数だった場合にデータとは別に0を付与し、奇数の場合1を付与するやり方
例 
110というデータを送る場合 1の数が偶数なので110に0を付与して1100となる。
100というデータを送る場合 1の数が奇数なので100に1を付与して1001となる

奇数パリティビットは送るデータの1の数が奇数だった場合にデータとは別に0を付与し、偶数の場合1を付与するやり方

110というデータを送る場合 1の数が偶数なので110に1を付与して1101となる。
100というデータを送る場合 1の数が奇数なので100に0を付与して1000となる


今回の問題では偶数パリティビットのやり方を採用していますね。データはx1 x2 x3ですね。x1 x2 x3のビット列の1の数が偶数個だった場合にcが0に奇数個だった場合に1になる回路はどれですか?と聞かれているわけです。

101の場合1の数が偶数なのでcは0になればいいですね。というわけでイとウ
101を検証しただけでは正解は絞り込めませんね。他にも入力してみます。

111を入力してみます。111は1の数が奇数なのでcが1にならなければいけません。検証してみるとそうなるのはウとなり答えはウとなります。


質問文を読んだ感じですと偶数パリティビットと奇数パリティビットの事を間違った認識をしているのか 問題を勘違いしているのではないかなと思います。


かなり長くなりました。ここまで読ませて間違ったことを言っていたら申し訳ないです...間違っていましたら、ほかの方説明を初めからして頂くか 間違ってる箇所を修正していただけると幸いです。
2025.02.14 03:16
jjon-comさん(No.4) 
AP プラチナマイスター
No.2 も No.3 も正しいので、
私からは質問文がそもそも変だということを補足しておきます。

> 偶数パリティビットは送るデータの1の数が
> 偶数だった場合にデータとは別に0を付与し、
> 奇数の場合1を付与するやり方  (No.3)

上記と同じことを、このサイトの解説では次のように表現しています。
偶数パリティビットは、
(元のビット列にパリティビットを加えた全体として)
1のビットの数が偶数になるようにパリティビットを付加する方式

この問題は、元データからパリティビットを算出する問題であり、
パリティビット付きのデータを受信してビットエラーの有無を検出する問題ではありませんから、
パリティビットは算出(出力)されるだけです。
> 奇数パリティビットを入力
はしていません。

ですから次の質問文は、元データとパリティビットの混同、入力と出力の混同が見られる変な文になっています。

> その後、100奇数パリティビットを入力する意味がわかりません。
> なぜ奇数パリティビットで確認して、
> その入力結果が「1」のウが正解なのでしょうか。  (No.1)

適切に言い換えるとこうなるでしょうか。

100という元データの例を仮定してこれを入力し、
その元データ中のビット1の数が奇数だったなら、
回路の出力結果が「1」、すなわち、元データにパリティビットを付加した全体でビット1の数が偶数になる ウ が正解。
2025.02.14 09:15
 さしみさん(No.5) 
納豆のたれさん、ピノキオさん、jjon-comさん

ご回答ありがとうございます。
テキストに出てきた問題で、解説を見ても分からず、こちらのサイトの回答を見ても分からなかったため、大変助かりました。

納豆のたれさんの「パリティビットはXORを使う」と覚えていれば素早く解ける問題ですね。こちらの裏技は知らなかったので、覚えておこうと思います。他にもこのような裏技があるのでしょうが、なかなか自分で見つけるには難しいですね。

また、根本的な考え方から分かっていなかったので、ピノキオさんの丁寧なご説明は大変参考になりました。

ありがとうございました。
2025.02.14 12:19
返信投稿用フォームスパム防止のためにスレッド作成日から40日経過したスレッドへの投稿はできません。
© 2010- 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop