M系列の生成多項式と原始多項式について

このQ&Aのポイント
  • M系列の生成多項式とは、周期 2^n - 1 のM系列を生成するために使用されるn次の原始多項式のことです。
  • 原始多項式は、生成多項式として用いられ、周期 2^n - 1 のM系列を生成するための重要な要素です。
  • 原始多項式の求め方にはいくつかの方法がありますが、具体的な方法は文献や専門書などで確認することができます。
回答を見る
  • ベストアンサー

M系列の生成多項式と原始多項式について

生成多項式や原始多項式に関する様々な投稿を見ましたが、 いまいち知りたいことがわからなかったので質問いたします。 周期 2^n - 1 のM系列を生成するには、{0,1}を体とする n次の原始多項式を生成多項式として用いるということまでは わかったのですが、このn次の原始多項式の求め方について、 いまいち理解できません。 例えば、周期 2^4 - 1 = 15のM系列を生成するには原始多項式           x^4 + x^1 + 1 ー (1) を用いるということですが、             x^4 + x^2 + 1 ー (2) ではM系列を生成できませんでした。 この2式の違いを理解していないことが原始多項式の求め方を 理解できない原因だと思うのですが、どなたかお詳しい方がいましたら、 ご教授お願いいたします。

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

  • ベストアンサー
  • tecchan22
  • ベストアンサー率53% (41/76)
回答No.2

#1さんミスしてますので修正を。 x^4 + x^2 + 1 = (x^2 + x + 1)(x^2 - x + 1) ですね。 念のため式変形を書くと、 x^4 + x^2 + 1 = x^4 + 2x^2 + 1 - x^2 = (x^2 + 1)^2 - x^2 = {(x^2 + 1) + x}{(x^2 + 1) - x} だから、そもそも既約でないので、原始多項式にはなりません。 (原始多項式ならば、既約。逆は言えませんが) しかし、単純に、原始多項式かどうかのチェックをしても、分かりますよね。 いま、数・係数としては、2で割った余りの世界(0と1からなる四則の出来る世界。色んな呼び名があるが、ここではF2と呼びます)を考えていますよね。 x^4 + x^2 + 1 でF2上の(つまり、係数が0と1からなる)多項式を割った「余り」を考えるとき、全ての多項式は、余りは3次以下の(係数が0と1からなる)式になりますよね。 係数が0と1であることから、ax^3 + bx^2 + cx + d たちは、全部で 2^4 = 16 個あるわけです。 いま、4次の原始多項式とは、xが、0を除く15個の余りを全て生成するような多項式を言います。 具体的に言うと、x , x^2 , x^3 , ・・ , x^15 を夫々割った余りがすべて異なり、0以外の全ての3次式が出てくるとき、原始多項式と言います。 ということは、もし途中で(余りとして)1がでたら、次から x , x^2 ・・と最初からの繰り返しになるので、駄目です。 よって x^15 の余りが1であり、それ以前に余り1が出てはいけません。 実は、この逆が言えて、 x , x^2 , x^3 , ・・ , x^14 の余りがすべて1でないとき(つまり x^15 ではじめて1になるとき)、(4次の)原始多項式である ・・・★ ことが言えます。 なので、(もっと良いテクニックは色々あるでしょうが)、★を満たすかどうかを、まじめに計算すれば分かります。 いま x^4 + x^2 + 1 についてやってみると、 x^4 + x^2 + 1 で割った余りは、x^4 + x^2 + 1 = 0 として、x^4 = x^2 + 1 (注:いまF2(2で割った余りの世界)上で考えているから、-1=1) を代入して次数を下げてゆけば求まりますよね。 すると、 x x^2 x^3 x^4 = x^2 + 1 x^5 = x(x^2 + 1) = x^3 + x x^6 = x(x^3 + x) = x^4 + x^2 = x^2 + 1 + x^2 = 1 ( 2 = 0 より、2x^2 = 0 ) となり、6乗で1になってしまうので、 x^4 + x^2 + 1 は原始多項式でないと分かりますネ。

pegaseaile
質問者

お礼

なるほど、{0,1}を体にするとは2で割った余りの世界を 考えているということなのですね。 あと、原始多項式についても理解できました。 実はM系列をCプログラムで生成しようとして、元の原始多項式の 設定のところでつまずいていたので質問させてもらいました。 当面は教えていただいた方法でアルゴリズムを書いてみるつもりです。 わかりやすく御回答していただき、ありがとうございました。

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

原始多項式の求め方は知りませんが, (2) は x^4 + x^2 + 1 = (x^2 + x + 1)^2 ですから, 原始多項式ではありません. 「原始多項式」というのは, 「より低次の多項式では割切れない多項式」のことです.

pegaseaile
質問者

お礼

なるほど、確かに因数分解できてしまいますね^^; ご指摘ありがとうございます。

関連するQ&A

  • 原始多項式の求め方

    9段M系列の生成多項式となる原始多項式の求め方を教えてください。 今のところx^9+x^5+1やx^9+x^4+1が原始多項式であることがネットなどを調べていてわかりましたが、求め方はわかりません。 また、上記の2式が原始多項式であるかどうか判別するようなこともできるのでしょうか? 数学に関しては素人なので"何を勉強すればわかるか"だけでも教えていただけると助かります。 よろしくお願いします。

  • 原始多項式について

    原始多項式について下記の問題と証明が合っているか確認したいのですが、 まず、原始多項式f(x)はf(x)=a0x^n+…+an-1x +anにおいてa0, …, an-1, anの最大公約元が可逆元の時を言います。 [問題] 一意分解環Aとその商体Kに対して自然な準同型π: A→K、a→a/1を定め F(x)=π(a0)x^n+…+π(an-1)x+π(an) f(x)=a0x^n+…+an-1x+an と置いた時、F(x), f(x)は原始多項式 [証明] Kは体なのでπ(ai)∈Kは可逆元でその最大公約元も可逆元。従ってF(x)は原始多項式。 またπ(ai)の逆元π(ai)^-1についてπ(ai)^-1=π(ai^-1) より逆元ai^-1がありf(x)も原始多項式である。 以上、考え方が合っているかご教授頂けますと幸いです。よろしくお願いいたします。

  • 原始多項式について

    一意分解環Aとその多項式環A[x]∋f(x)について、次の(1), (2)は同値であることを証明したいのですが、 (1)f(x)は原始多項式である (2)任意の素元p∈Aに対して、f(x)をpを法として考えた多項式f'(x)∈(A/(p))[x]は零でない (2)のf(x)をpを法として考えた多項式とは a0, b0, …, an, bn∈Aを用いて f'(x)=(a0/pb0)x^n+…+(an-1/pbn-1)x+(an/pbn) と表せる事(だと思う、、)で、 原始多項式とは f(x)=a0x^n+…+an-1x+anについて、a0, …,anの最大公約元が可逆元であることなので、 (2)⇒(1)はf'(x)=(a0/pb0)x^n+…+(an-1/pbn-1)x+(an/pbn)が零でなければ、a0, …,anの最大公約元が可逆元となるように示して行けば良いと思うのですが さっぱり分かりません。 (1)⇔(2)の証明をご教授頂けると助かります。 よろしくお願いいたします。

  • 超高次の多項式の原始関数を求めたいのですが

    f(x) = (n-x)(n-1-x)(n-2-x).....(n-m-x) n: 大きな自然数(例えば1000000など) m: n>mの大きな自然数(例えば100000など) という多項式 f(x)の原始関数を高速に求めるアルゴリズムを考えて います. f(x)を具体的に展開してから原始関数を求めれば簡単だと思い,上記 の式を展開するプログラムを書いたのですが,組み合わせの計算を する必要が生じて,mの値が大きな時に高速に計算できませんでした. 原始関数を直接導出しようと,いろいろ場合分けして考えてみたので すが挫折しました. アドバイス頂けませんでしょうか? よろしくお願いします.

  • GF(5)のガロア体の原始多項式

    多値M系列について勉強にどうしても必要なため質問です。 GF(5)の原始多項式はいったいいくつ存在し、具体的にどういった値をもつのでしょうか? 自分でがんばって計算し 「x^2+x^1+2」 がGF(5)の原始多項式の一つであることがわかったのですが、その他は存在するのでしょうか、、、? GF(2^n)の原始多項式の解説はよく見るのですが、GF(5)がなくて困っています。

  • 原始多項式の証明

    原始多項式の証明 すみませんこの問題がどうしてもわかりません。だれか教えていただけないでしょうか? x^4+x+1(この式はFp[x]に含まれる、p=2)はFp上の4次原始多項式であることを示せ。 まず、既約多項式であることを証明して、原始多項式であることを証明するのだと思うのですが・・・ どうかお願いします。

  • 原始多項式について

    画像の問題、証明の中で、d=GCD(a0,…,an)、ai=dbi (b0,…,bn∈A)、g(x)=b0x^n+…+bnとおけばg(x)は原始多項式…とありますが、なぜg(x)が原始多項式になるかが分かりません。 dが最大公約元と言っても他にbiで可逆でない公約元があるかもしれないですし、、 何か見落としている点があるかもなので分かる方ご教授頂けますと幸いです。 よろしくお願いいたしますm(_ _)m

  • 関数、多項式

    n、kを自然数とすると、1^k+2^k+3^k+…+n^kはnの(k+1)次の多項式として表わされるので、それをS(n,k)と書きます。 f(x)が高々k次のxの多項式で、f(0)=0かつ f(m+1)-f(m)=m^(k-1) がm=1,2,3,…,kで成り立つとき、任意の実数xに対してf(x)=S(x-1,k-1) が成り立つような気がするのですが、これはどうやって示せますか?

  • 最長周期系列(M系列?)の生成プログラム(C言語)

    擬似乱数などに使用される最長周期系列をシフトレジスタ数nを入力として生成するプログラムを探しているのですが、どれだけ探しても乱数生成のプログラムはあっても最長周期系列のほうのプログラムが見当たらないのです。 C言語で探しています。 ソースコードも含めてどうかよろしくお願いします。

  • javascriptで素数と原始元を作りたいです

    JavaScriptで素数生成と原始元してますがうまくいきません助けて!! 乱数(n)を生成 ↓ 乱数(n)を素数判定する(違うなら最初からやり直す) ↓ nを使って 2n+1=mとする ↓ mを素数判定する(違うなら最初からやり直す) ↓ ボタンを押してテキストボックスに結果を表示 素数m:○○ mに対しての原始元はn:×× とやりたかったのですがうまくいきません。 至急お願いします。