# how to compute x^ip (mod P) in F2

hello

i want to compute x^iq (mod P) for q=2,0<=i<=3. By using the Euclidean algorithm; but i don

p = 3
X = ZZ['X'].gen()
P = 1+X+X^2+X^3
K.<X> = GF(p)['X'].quotient(P)
K.<X> = PolynomialRing(GF(2),'X')
X = K.gen()
S = K.quotient(P, 'X')
X = S.gen()
M = matrix([(X^(p*i).list() for i in range(p)]).transpose()


but my matrix M does not correspond to what i have when i do it by hand. thanks

edit retag close merge delete

Please describe the situation mathematically first, since the provided code cannot be a substitute. Do we want to work in characteristic two or in characteristic three? The ring $$\Bbb F_3[X]\ /\ (1+X+X^2+X^3)$$ is immediately overwritten. Why do we do this? The prime $p=3$ is finally used also in the matrix $M$. Which should be this matrix?

( 2022-05-06 14:15:55 +0200 )edit

Sort by » oldest newest most voted

Your code is quite messy and does not match the problem description. Let me design one from scratch:

R.<X> = PolynomialRing(GF(2))
P = 1+X+X^2+X^3
S = R.quotient(P)
q = 2
print('as elements of S:', [S.gen()^(i*q) for i in (0..3)] )
print('as elements of P:', [(S.gen()^(i*q)).lift() for i in (0..3)] )


Is this what you want?

more