Main Content

gfprimfd

ガロア体に対する原始多項式を求める

構文

pol = gfprimfd(m,opt,p)

説明

メモ

この関数は、p が素数のとき、GF(pm) の計算を行います。GF(2m) で実行するには、関数 primpoly を使います。詳細については、原始多項式と元の表現の Finding Primitive Polynomials を参照してください。

  • m = 1 の場合、pol = [1 1] です。

  • 多項式は、係数を昇べきの順に含む行として表されます。

pol = gfprimfd(m,opt,p) は、p が素数で m が正の整数である場合に GF(p^m) の 1 つ以上の原始多項式を探索します。m = 1 の場合、pol = [1 1] です。m > 1 の場合は、出力 pol は、下記の表のように引数 opt により異なります。各多項式は、係数を昇べきの順に含む行として pol で表されます。

optpol の重要性pol の形式
'min'非ゼロ項の可能な最小数をもつ GF(p^m) の 1 つの原始多項式 多項式を表現する行ベクトル
'max'非ゼロ項の可能な最大数をもつ GF(p^m) の 1 つの原始多項式 多項式を表現する行ベクトル
'all'GF(p^m) のすべての原始多項式 各行がこのような多項式を表現する行列
正の整数 opt の非ゼロ項のある GF(p^m) に対するすべての原始多項式 各行がこのような多項式を表現する行列

下記のコードは、さまざまな属性をもつ GF(81) に対する原始多項式を探します。正確に 4 個の非ゼロ項をもつ GF(81) に対する原始多項式はないため、fourterms は空になることに注意してください。また、fewterms は 3 個の項のある "1 つ" の多項式を表し、threeterms は GF(81) に対する 3 項の""すべて" の原始多項式を表すことも注意してください。

p = 3; m = 4; % Work in GF(81).
fewterms = gfprimfd(m,'min',p)
threeterms = gfprimfd(m,3,p)
fourterms = gfprimfd(m,4,p)

出力は以下のようになります。

fewterms =

     2     1     0     0     1


threeterms =

     2     1     0     0     1
     2     2     0     0     1
     2     0     0     1     1
     2     0     0     2     1

No primitive polynomial satisfies the given constraints.

fourterms =

     []

アルゴリズム

gfprimfd は、関数 gfprimck を使用して原始性のテストを実行します。opt'min''max'、または省略された場合、多項式は 10 進整数を基底 p に変換することによって構築されます。10 進法の順序に基づき、gfprimfd は適切な条件を満たす、最初に見つかった多項式を出力します。

バージョン履歴

R2006a より前に導入