Скажите, я хочу конечное поле, содержащее q^n
элементов для некоторых prime q
и positive n
. Как до получить его примитивный элемент?В pari-gp, как найти примитивный элемент конечного поля?
1
A
ответ
2
Вы можете получить некоторый примитивный элемент со следующим кодом:
var = 'x; \\ sets a variable in the polynomial representation of finite field
f = ffgen(ffinit(q, n)); \\ GF(q^n) ~ GF(q)[x]/<f(x)>. Note `f` is just an irreducible
a = ffprimroot(f); \\ gets a root `a` of `f`
poly = minpoly(a, var); \\ finds a minimal polynomial for `a`
primitive_elt = ffgen(poly, var); \\ finds a root of the minimal polynomial
\\ assertion: check the order
fforder(primitive_elt) == q^n-1
Отметим, что конечное поле может иметь некоторые примитивные элементы. Вышеприведенный код находит случайным. Пожалуйста, обратите внимание, что приведенный выше код предполагает n
> 1. В противном случае сработает функция minpoly
(протестирована с PARI/GP 2.7.2 32-бит).
Не могли бы вы любезно помочь мне. Пусть 'n = m * p'. Как получить примитивный элемент 'GF (q^n)' как m-мерный вектор над GF (q^p) '? –
@aka_test: Чтобы достичь своей цели, вы должны вычислить минимальный многочлен 'GF (q^n)' как многочлен над 'GF (q^p)'. Подробности см. На http://johnkerl.org/doc/ffcomp.pdf (раздел 6.1). –