ソフトウェア開発技術者試験でのCRCの送信データに関する疑問

このQ&Aのポイント
  • ソフトウェア開発技術者試験の勉強中の普通科、高卒の者がCRCの送信データの多項式について疑問を持っています。
  • 疑問1では、なぜ生成多項式Bが特定の式になるのかがわからず、疑問2ではなぜ生成多項式Bの次数が3なのかがわからないと質問しています。
  • さらに疑問3では、C/Bの計算式が成り立つ理由とXの5乗が答えに入る理由について知りたいとしています。
回答を見る
  • ベストアンサー

ソフトウェア開発技術者試験(CRCの送信データ)

何度も、恐縮です。 ソフトウェア開発技術者試験の勉強をしている 普通科、高卒の者です。 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点の質問になります。ご存知の方からすれば 簡単な問題かもしれませんが、宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

普通に十進数で割り算の筆算をするのと同じです。 十進数も多項式に置き換えることが出来ます。 例えば2007だと、10の3乗×2+10の0乗×7となります。 そう考えれば、多項式だろうが普通の筆算で解くことができます。 ちなみに参考URLを載せておきます。 何かあれば、また補足ください。

参考URL:
http://phaos.hp.infoseek.co.jp/preparations/division.htm
m-toshi
質問者

補足

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

その他の回答 (1)

回答No.1

詳しくはないのですが、資料と自分の考えを元に回答します。 まず、疑問1 送信したいデータを多項式としてあらわしたもの。これがAとなります。 そしてBですが、基本的にCRC符号の生成多項式は定義されています。 しかし、今回用いられたのはその問題用に簡単にされたものではないでしょうか? 実際に使われている生成多項式は、検索すれば見つかると思います。 次に、疑問2 Bの次数が3となっていますが、これはBが次数3の多項式であるからです。 そのため、Bの次数ほどAを左にシフト(末尾に0をつけるとも)します。 最後に、疑問3 >どうすれば、この計算式が成り立つのでしょうか? とは、どのことでしょうか?C/Bのことでしょうか? このことならば、CRCのアルゴリズムとしか言いようがありません。 CRCは一定の手順で作成した多項式を、生成多項式で割った余りを検査符号とするものです。 なぜ、xの5乗+1が答え(商)となるのかは実際に計算してみれば分かります。 多項式同士の割り算で簡単に答えが出ます。 以上となりますが、少しでも参考となれば幸いです。

m-toshi
質問者

補足

ご回答をありがとうございました。 >なぜ、xの5乗+1が答え(商)となるのかは実際に計算してみれば >分かります。 すみません。この実際の計算方法が解らないのです。 もう少し、具体的にご指導をいただければ幸いです。

関連するQ&A

  • 整式の除法について

    3乗=(3)と表します。 [2X(3)-5X(2)+X-1]÷[X-1] 説明を読むと、余りの式の次数が割る式の次数より低くなるまで計算を続けるとありました。 自分なりに計算したのですが、余りが-X-2、-3という答えになりました。-3は余りにならないので違うと思うのですが、-X-2というのは次数が割る式と同じになっています。次数は割る式と同じでも良いのでしょうか?この問題の答えお願いします。

  • 高等学校**数学II

    こんにちは。高校生女子です。 私の学校は明日テストです(>_<) ◎多項式Pを(x+1)2で割った余りは9であり、(x-1)2で割った余りは1である。 Pを(x+1)2(x-1)2で割った余りを求めよ。 という問題で、P=AQ+R などを使い、 a=2、b=-4、c=2、d=4 というところまでわかったんですが、ここからどうしたらいいかわかりません。 答えは2x3-6x+5です。 どうやったらこの答えがでますか? 2乗とか3乗とか見にくくてすみません;;

  • CRC8 ATMの計算方法

    CRC8 ATMの演算を行うツールの検証を行っているのですが、 CRCの机上計算方法を詳しく解説したサイトが無く生成多項式で 割って余りを求めると言う事しかわかりませんでした。 CRCを求める際はCRCの初期値も重要な筈ですが、CRCの初期値は 余りを求める際にどの様に使うのかを開設した物がなく、私に 検証を依頼してきた人に聞いてもまともな回答をもらえません でした(検証を依頼してきた人もちゃんと理解していない?)。 このサイトの別の質問の回答で 1. 与えられたデータの下位 (ビット送りの反対側) に「初期値」   を付加する 2. 生成多項式で割って余りを求める とあったので、その通りに計算しましたが初期値が0x00の時は ツールと机上計算の結果が一致するのですが、初期値0xFFの時は ツールと机上計算の結果が一致しませんでした。 実際の計算過程と結果は下記です。 生成多項式:x8+x2+x1+1(9'b100000111) 入力データ:0x12345678 CRC初期値:0x00 データ左送り、入出力反転なし 机上計算 初期値:0001001000110100010101100111100000000000(0x1234567800) 100000111 ---------------------------------------- 0001001000100010101100111100000000000 100000111 ---------------------------------------- 0001001010010101100111100000000000 100000111 ---------------------------------------- 0001011100101100111100000000000 100000111 ---------------------------------------- 0011101011100111100000000000 100000111 ---------------------------------------- 01101000000111100000000000 100000111 ---------------------------------------- 0101001110111100000000000 100000111 ---------------------------------------- 001001001111100000000000 100000111 ---------------------------------------- 0001000001100000000000 100000111 ---------------------------------------- 0000000010000000000 100000111 ---------------------------------------- 00000011100 なのでCRC(余り)は0x1C(00011100)でツールの結果0x1Cと一致。 CRC初期値:0xFF 机上計算 初期値:0001001000110100010101100111100011111111(0x12345678FF) 100000111 ---------------------------------------- 0001001000100010101100111100011111111 100000111 ---------------------------------------- 0001001010010101100111100011111111 100000111 ---------------------------------------- 0001011100101100111100011111111 100000111 ---------------------------------------- 0011101011100111100011111111 100000111 ---------------------------------------- 01101000000111100011111111 100000111 ---------------------------------------- 0101001110111100011111111 100000111 ---------------------------------------- 001001001111100011111111 100000111 ---------------------------------------- 0001000001100011111111 100000111 ---------------------------------------- 0000000010011111111 100000111 ---------------------------------------- 00011100011 なのでCRC(余り)は0xE3(11100011)でツールの結果0xCDと不一致 となりました。 これは計算の仕方が間違っているのでしょうか? それともツールの結果が間違っているのでしょうか? 何方かCRCの計算に詳しい人、ご回答をお願いします。

  • 整式と実数

    4a二乗 次数 2 係数 4 a二乗b 次数 3 係数 0 -xyz二乗 次数 4 係数 1 3+x-x二乗-x四乗 次数 4 定数項 3 ab二乗+2a二乗-5 次数4 定数項 -5 x二乗-2xy+y二乗 二次式 ab二乗-ab 四次式 答えをだしてみたんですが、あってますか??

  • 不定積分について教えてください><

    ∫x^2/x^2+a^2 dx という問題が解けなくて困っています>< ^2は2乗を表します。 x=tantと置いて計算していけば適当でしょうか?まずは次数下げを行うべきですかね??・・・ 答えしか載ってなく途中式が分からないので教えてください>< 答えはx-a*arctanx/a+Cです。 お願いします><  (*は乗算を表します)

  • 数学の問題

    数学の問題でわからないものがあったので教えていただきたいです。 問題:xに関する2つの多項式A(x)、B(x)を、多項式F(x)=x^2+x+1で割った余りを、 それぞれx+1、2x+3とするとき、A(x)×B(x)を多項式F(x)で割った余りを求めよ。 答えは3x+1らしいです。 /ニュースタンダード数学演習2011 79 よろしくお願いします。

  • この数学の問題の解き方を教えてください!

    下に書いてある数学Iの問題がわかりません。 解き方と答えを教えてください! (1)次の多項式Aを多項式Bで割った商と余りを求めよ。 A=2x³-3x²+2x-8,B=2x-1

  • CRCによる誤り検出の条件

    現在、CRCについて学んでいます。 その中で、誤り検出が可能な条件として、 誤りの多項式E(X)が生成多項式G(X)で割り切れないこと というのがあると思います。 そこで例えば、rビットのバースト誤りの際に、 E(X) = x^(i) + x^(i+1) + … + x^(i+r-1) = x^i * {1 + x + … + x^(r-1)} (ただ、この最後の式でx~x^(r-2)までは、誤りによってあったりなかったりする筈です) と表すことが出来て、生成多項式G(X)の次数がrであるとき、 1. x^iは(G(X)が2項以上の多項式であるなら)G(X)で割り切れない 2. {1 + x + … + x^(r-1)}は(次数がr-1であるから)G(X)で割り切れない 3. 従ってE(X)もG(X)で割り切れない よって生成多項式の次数がrの場合、rビット以下のバースト誤りは検出できるとなっていますが、、、 いくら1.や2.がG(X)で割り切れなくても、それらの積(=E(X))がG(X)で割り切れてしまうことはあるじゃないですか。 具体的には、i=1のとき、もしG(X)がx * {1 + x + … + x^(r-1)}であれば、割り切れますし、、、 同様の話で、 http://laputa.cs.shinshu-u.ac.jp/~yizawa/InfSys1/advanced/crc/ こちらのページの、「4. 巡回符号の誤り検出」という部分でも、 「これらは、3次の生成多項式、例えば G(x) = x^3+x+1 で割り切れないことは明らかです。」 という記述に対して、「例えばG(X) = x^3+x^2+x^1であれば割り切れてしまうのでは」と反論したくなります。 もちろん、割り切れないようなG(X)を選べばいいと言われればそれまでですが、、、以上の様にG(X)の内容によっては「G(X)の次数r以下のバースト誤りが検出できる」のが自明とは思えません。 そもそもそれが答え、、、? どなたかご説明お願いしますm(_ _)m

  • 中学2・3年生レベルですが

    大学の模擬授業で、2年生の「式と計算」3年生の「多項式」で、の単項式・多項式の加減乗除を取り扱っているのですが、その中で、疑問が生まれ今回質問しました。 疑問は以下のことです。 (ⅰ)単項式の定義は、数といくつかの文字との積(乗法)だけの式ですが、除法で表されたものは単項式なのか? (ⅱ)2x(x-y)=2x^2-2xyで、右辺は多項式だが、左辺も多項式だと説明するにはどうしたらよいのか? (ⅲ)4xの次数は1だが、4x=x+x+x+xとなり次数は4であるという生徒に対して、どのように説明すべきか。(この問題を扱うのは、多項式の次数の意味を教える前) どうのように考えたらよいのか、教えていただきたいと思います。

  • 計算の仕方がわかりません 

    計算の仕方がわからないので教えてほしいです。 (X3乗+ax2乗+bx+1)÷(x2乗-2x+1) 商は?余りは? もし割り切れるならa=? b=? 答えはわかっています 商 x+a+2  余り (2a+b+3)x-a-1 a=-1 b=-1 お願いします