平成22年秋期 午後問3

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
auauriさん  
(No.1)
設問3の解説に記載されている
「受信したデータ"1001001101"に対して」とありますが
どのように計算したのかが分からないのですが教えていただけないでしょうか。
2022.05.10 22:43
匿名さん 
(No.2)
こんにちは

この問題は設問2のビットパターンを作成する手順を参考にしなければなりません。
問題文で「マスク101で計算した符号を右端に付加したビット列1001001101を受信した。このビット列にはc。」
と書かれているので、これは要は
手順1「10010011」というデータがある(右の二桁が減っていることに注意)
手順2「10010011」の右に「00」を付け加えた
手順3「1001001100」のデータの付け加えた列を除くすべてのビット列が0になるように101で各桁にXOR演算をした
その結果できたのが「1001001101」というデータ列であった
果たしてこの演算結果は正しいのだろうか?

という趣旨です。
じゃあ同じ手順で計算して最後の二桁「01」が得られるか試してみよう。
「1」「0」「0」「1」「0」「0」「1」「1」XOR
「1」「0」「1」
「0」「0」「1」「1」「0」「0」「1」「1」が得られる
(左側の0は無効なので消します(上の下で0のけたが二つなくなっているのを確認してください))
「1」「1」「0」「0」「1」「1」XOR
「1」「0」「1」
「0」「1」「1」「0」「1」「1」が得られる
(全部0になるまで繰り返します)
「1」「1」「0」「1」「1」XOR
「1」「0」「1」
「0」「1」「1」「1」「1」が得られる
()
「1」「1」「1」「1」XOR
「1」「0」「1」
「0」「1」「0」「1」が得られる
()
「1」「0」「1」XOR
「1」「0」「1」
「0」「0」「0」が得られる
見ての通りすべて消失しました
「1」「0」「0」「1」「0」「0」「1」「1」「0」「1」というデータが来たので
同じことをしたら
「0」「0」「0」「0」「0」「0」「0」「0」「0」「1」となるはずが
一番後ろの「0」「1」が正しくは「0」「0」ということで
このデータには「誤りが含まれる」ということです

初めての投稿なのでなにか阻喪があればすみません
2022.05.11 04:26
auauriさん  
(No.3)
回答ありがとうございます。

設問2では「符号計算対象のビット列00100110の2ビットの符号は01である」とあります

どのように計算すれば「1001001101」になるのでしょうか

重ねて質問申し訳ありません……
2022.05.11 07:16
匿名さん 
(No.4)
私が書いた回答で理解できませんか?
2022.05.11 10:05
chihiroさん 
FE プラチナマイスター
(No.5)
設問3は
「元のビット列は不明だが、1001001101というビット列を受信した。受け取ったビット列に誤りが含まれるかどうか答えよ。」

という問題であって、

「設問2で末尾に2ビットを付与したビット列0010011001を送信した。その結果、受信側は1001001101というビット列を受信した。」

ということではありません。仮に後者だとすれば、受け取ったビット列は送信したビット列と明らかに異なるので誤りだとわかりますし。
2022.05.11 10:05
匿名さん 
(No.6)
設問2ではなく設問3のcの話ですか??

問題文で「マスク101で計算した符号を右端に付加したビット列1001001101を受信した。このビット列にはc。」
と書かれていますから、「1001001101」はありきなんです。

要は「マスク101で計算した符号(01)を(10010011の)右端に付与したビット列1001001101を受信した」というのが体なんですよ
それで10010011にたいして01というデータは設問2の手順で付与されたはずなんだけども、
ほんとにこれが正しいのかどうか?を試すのがあなたがやることです。

すみませんが、会話になってる気がしないのでもう少し詳しく情報を提示していただけるとありがたいです。
2022.05.11 10:11
boyonboyonさん 
FE シルバーマイスター
(No.7)
この問題は、本文に書いてあるとおり
>送信側でデータに誤り検出符号(以下,符号という)を付加して送信し,受信側で検査することによって,転送の際の誤りの有無を判断する。

仮に、送信者が送ろうとしたデータが、XXXXXXXXだとします。
送信者は、〔nビットの符号を求める計算手順〕で
XXXXXXXXに00をつけ、XXXXXXXX00が00000000 01になったのでXXXXXXXX01を送信します。

受信者  
1001001101を受信、調べることは、XXXXXXXXと前から8桁10010011が一致するかどうか。
確認方法は、2つあり

一つ目は、設問の〔誤りの有無の検査手順〕通りに計算し、
全てのビットが0になれば、XXXXXXXXと10010011  が一致する事になります。

もう一つは、受信したデータ部分10010011に送信者と同じく
〔nビットの符号を求める計算手順〕で計算してみる方法です。
ようするに10010011に00をつけて符号を求めます。それが、01ならば誤りなし、
それ以外ならばデータに誤りありとなります。
実際に計算すると結果は、00000000 00 になり符号は00になります。
これは、データに誤りありということになります。

内容的には、2つとも同じようなものです。
2022.05.11 19:09
auauriさん  
(No.8)
皆さんのおかげで理解することが出来ました。

理解力のない私で誠に申し訳ございませんでした
2022.05.11 20:29

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。

その他のスレッド


Pagetop