プロが教えるわが家の防犯対策術!

何度も、恐縮です。
ソフトウェア開発技術者試験の勉強をしている
普通科、高卒の者です。

CRCの送信データの多項式が理解できません。

110101 を送る時、

A = Xの5乗 + Xの4乗 + Xの2乗 + 1
B = Xの3乗 + Xの2乗 + 1

(疑問1)
なぜ、Bがこの式になるのでしょうか?
(A)は、解りますが・・・

このAに生成多項式Bの次数(3)を掛け、
結果は、
C = Xの8乗 + Xの7乗 + Xの5乗 + Xの3乗
と、なります。

(疑問2)
なぜ、生成多項式Bの次数が(3)なのでしょうか?
一番最初のXの3乗と、考えて良いのでしょうか?

続いて、C/Bの計算をします。

                Xの5乗      + 1
              _______________________ _____________
Xの3乗 + Xの2乗 + 1 ) Xの8乗 + Xの7乗 + Xの5乗 + Xの3乗
               Xの8乗 + Xの7乗 + Xの5乗
                     ___________________________________
                     Xの3乗
                     Xの3乗 + Xの2乗 + 1
                    _________________
                     - Xの2乗 - 1

と、答えは、[- Xの2乗 - 1]が余りとなります。

(疑問3)
どうすれば、この計算式が成り立つのでしょうか?
まず、なぜ、Xの5乗 が上の答えに入るのでしょうか?

以上、3点の質問になります。ご存知の方からすれば
簡単な問題かもしれませんが、宜しくお願い致します。

A 回答 (2件)

普通に十進数で割り算の筆算をするのと同じです。



十進数も多項式に置き換えることが出来ます。
例えば2007だと、10の3乗×2+10の0乗×7となります。

そう考えれば、多項式だろうが普通の筆算で解くことができます。

ちなみに参考URLを載せておきます。
何かあれば、また補足ください。

参考URL:http://phaos.hp.infoseek.co.jp/preparations/divi …

この回答への補足

わかりやすいURLでした。ありがとうございます。
話が戻りますが、

>(疑問1)
>なぜ、Bがこの式になるのでしょうか?
これが、やはり解りません。
何度も恐縮ですが、宜しくお願い致します。

補足日時:2007/03/08 11:08
    • good
    • 0

詳しくはないのですが、資料と自分の考えを元に回答します。



まず、疑問1
送信したいデータを多項式としてあらわしたもの。これがAとなります。
そしてBですが、基本的にCRC符号の生成多項式は定義されています。
しかし、今回用いられたのはその問題用に簡単にされたものではないでしょうか?
実際に使われている生成多項式は、検索すれば見つかると思います。

次に、疑問2
Bの次数が3となっていますが、これはBが次数3の多項式であるからです。
そのため、Bの次数ほどAを左にシフト(末尾に0をつけるとも)します。

最後に、疑問3
>どうすれば、この計算式が成り立つのでしょうか?
とは、どのことでしょうか?C/Bのことでしょうか?
このことならば、CRCのアルゴリズムとしか言いようがありません。
CRCは一定の手順で作成した多項式を、生成多項式で割った余りを検査符号とするものです。

なぜ、xの5乗+1が答え(商)となるのかは実際に計算してみれば分かります。
多項式同士の割り算で簡単に答えが出ます。

以上となりますが、少しでも参考となれば幸いです。

この回答への補足

ご回答をありがとうございました。
>なぜ、xの5乗+1が答え(商)となるのかは実際に計算してみれば
>分かります。

すみません。この実際の計算方法が解らないのです。
もう少し、具体的にご指導をいただければ幸いです。

補足日時:2007/03/06 13:28
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!