Sunteți pe pagina 1din 44

Metode algoritmice n algebr

Prof. univ. dr. Ion D. Ion


Capitol 1. ALGORITMI MODULARI
1.1. Algoritmul Euclid extins
Reamintim c un domeniu de integritate R (adic un inel comutativ cu 1 0 i
ab 0 dac a 0 i b 0 ) se numete inel Euclidian n raport cu o funcie : R*
dac oricare ar fi a, b R cu b 0 , exist q, r R astfel nct
a = bq + r cu ( r ) < ( b ) dac r 0 .

Exemplul 1. Inelul este Euclidian n raport cu funcia : * , ( x ) = x .


n adevr fie n, m , m 0 . Artm c exist q, r astfel nct
n = mq + r i r < m .
Fie
M = {n ms s , n ms 0} .
Cum s M , rezult c M . Cum este mulime bine ordonat (orice parte
def

nevid M a lui admite un cel mai mic numr) fie q astfel nct r = n mq s fie
cel mai mic numr din M . Avem r < m .
Se verific imediat c numerele q , r sunt unic determinate i se numesc
respective ctul i restul mpririi lui n prim m . Folosim notaiile
r = n rem m , q = n quo m
unde rem i quo sunt primele trei litere din cuvintele din limba englez remainder i
quotient.
Avem urmtorul algoritm (algoritmul DIVNAT) pentru mprirea euclidian a
numerelor naturale care n pseudocod admite descrierea:
INPUT m, n , m 0
OUTPUT q, r , n = mq + r , r < m
INITIALIZATION r n , q 0
WHILE r m DO
r rm
q q +1
RETURN q , r
Organigrama algoritmului DIVNAT este

READ m,n

r n, q 0

rm

r rm
q q +1

RETURN q,r

Acum putem arta c este Euclidian n raport cu funcia : ,


( x) = x .
n adevr, fie a, b , b 0 . Notm n = a i m = b > 0 . Fie q, r astfel
nct

a = b q+r , 0 0r < b .
Cnd b > 0 , a 0 , avem a = bq + r cu 0 r < b . Cnd b > 0 , a < 0 , avem
a = bq + r cu 0 r < b . Putem scrie a = b ( q 1) + b r . Lund q q 1 i
r b r avem a = bq + r cu 0 r < b . Analog se examineaz cazurile rmase ( a 0 ,
b > 0 i a < 0 , b < 0 ).
Exemplu. Dac m, n , n = 22 , m = 5 . Avem q = 4 i r = 2 pentru c
22 = 5i4 + 2 . n acest caz valorile variabilelor r , q pe msur ce algoritmul DIVNAT
este derulat sunt
q
r
0
22
1
17
2
12
3
7
4
2
Structura while loop este parcurs de 4 ori.
Exemplul 2. Inelul K [ X ] , K corp comutativ, este Euclidian n raport cu funcia

: K [ X ] , ( f ) = grad f .
*

Dac

f ,g K [X ],

f = an X n + ... + a1 X + a0

cu

g = bm X m + ... + b1 X + b0 cu bm 0 i n m , atunci polinomul f1 K [ X ] ,

(*)

f1 ( X ) = f ( X ) g ( X ) bm1an X n m

an 0

are gradul strict mai mic ca gradul lui f cnd f1 0 . Algoritmul mpririi euclidiene a
lui f ( x ) prin g ( x ) const n repetarea de un numr finit de ori a passului (*) (e numete
algoritmul DIVPOL).
INPUT f , g K [ X ] , g 0
OUTPUT q, r K [ X ] , f = gq + r , grad r < grad g dac r 0
INITIALIZATION r f , q 0
WHILE grad r grad g DO
ht ( f )
r f g ibm1an X n m = f
g
ht ( g )

q q + bm1an X n m
RETURN r , q
Organigrama algoritmului DIVPOL este
READ f,g

r f , q0

grad r grad g
RETURN q,r

r f g ibm1an X n m

q q + bm1an X n m

Exemplu. Dac f , g 5 [ X ] , f = X 5 + 2 X 4 + X 2 + 3 X + 4 i g = 2 X 2 + X + 3 ,
atunci calculele n algoritmul DIVPOL pentru f g sunt prezentate astfel
f = X 5 + 2 X 4 + X 2 + 3 X + 4
g = 2 X 2 + X + 3
X 5 + 3 X 4 + 4 X 3
q = 3 X 3 + 2 X 2 + 2 X + 4
4 X 4 + X 3 + X 2
4 X 4 + 2 X 3 + X 2
4 X 3 + 0 X 2 + 3 X
4 X 3 + 2 X 2 + X

3 X 2 + 2 X + 4
3 X 2 + 4 X + 2
3 X + 2 = r

Definiie. Fie R un domeniu de integritate i a, b R . Un element d R se


numete cel mai mare divisor comun (pe scurt c.m.m.d.c) al lui a i b dac
a) d | a i d | b
b) dac c | a i c | b c | d .
n caz c exist c.m.m.d.c. al lui a i b este unic determinat n dac punem i
condiia
d 0
i de asemenea n K [ X ] dac punem condiia ca d ( x ) s fie polinom monic (cu

coeficientul dominant egal cu 1). Pentru d folosim notaia


d = gcd ( a, b )
(great common divisor).
S observm c dac b | a , atunci exist gcd ( a, b ) = b . De asemenea, dac pentru
a, b, q, r R avem relaia
a = bq + r

atunci exist gcd ( a, b ) dac i numai dac exist gcd ( b, r ) i n acest caz avem
gcd ( a, b ) = gcd ( b, r ) .
Fie acum R un inel Euclidian n raport cu o funcie : R* i fie
a, b R astfel nct b | a i ( a ) ( b ) .
Definim
r0 = a , r1 = b i ri +1 = ri 1 rem ri pentru i 1 .
De asemenea, pentru i 1 definim
qi = ri 1 quo ri
unde pentru a, b R cu b 0 notm cu a rem b restul mpririi lui a prin b , iar
a quo b ctul mpririi lui a prin b , adic avem
a = bq + r cu ( r ) < ( b ) dac r 0 .

Aadar avem ri 1 = ri qi + ri +1 , oricare ar fi i 1 .


De asemenea, definim elementele si , ti , i 0 prin
s0 = 1 , s1 = 0 , iar si +1 = si 1 qi si dac i 1
i
t0 = 0 , t1 = 1 , iar ti +1 = ti 1 qi ti dac i 1 .
Avem
(*)

ri = si a + ti b oricare ar fi i 0

Ct timp pentru i 1 avem ri 0 putem efectua mprirea cu rest a lui ri 1 prin


ri i obinem

( r0 ) = ( a ) ( b ) = ( r1 ) > ( r2 ) > ...


Cum ( ri ) , i 0 sunt numere naturale, exist n * astfel nct ri 0 pentru
i=0,1,,n i rn +1 = 0 . Numrul n se numete lungimea euclidian a cuplului ( a, b ) cu
a, b R ^ ( a ) ( b ) i putem scrie

(**)

r0 = a = bq1 + r2 = r1q1 + r2 , ( r2 ) < ( r1 ) = ( b )

r1 = b = r2 q2 + r3 , ( r3 ) > ( r2 )

r = r q + r , r > r
( n ) ( n 1 )
n 2 n 1 n 1 n
rn 1 = rn qn + 0

Ansamblul (**) de mprire cu rest de mai sus poart numele de algoritmul


Euclid pentru a, b R cu ( a ) ( b ) . Cum rn | rn 1 rezult c exist gcd ( rn 1 , rn ) = rn .
Acum din egalitatea rn 2 = rn 1qn 1 + rn rezult c exist gcd ( rn 2 , rn1 ) = gcd ( rn 1 , rn ) i aa
mai departe. Rezult c exist gcd ( a, b ) i avem
rn = gcd ( rn 1 , rn ) = gcd ( rn 2 , rn 1 ) = ... = gcd ( a, b ) .
Rezumnd cele de mai sus, dac R este inel Euclidian, atunci oricare dou
elemente a, b R admit c.m.m.d.c. n cazul a, b R* cu ( a ) ( b ) (la care ne putem
reduce ntotdeauna) gcd ( a, b ) este egal cu ultimul rest nenul din algoritmul lui Euclid
pentru a i b .
n pseudocod algoritmul Euclid pentru a, b R* cu ( a ) ( b ) se descrie astfel:
INPUT a, b R* , ( a ) ( b )
OUTPUT d = gcd ( a, b )
r0 a , r1 b , i 1
WHILE ri 0 DO
ri +1 ri 1 rem ri
i i +1
RETURN d = ri 1
Organigrama algoritmului Euclid este:

READ a,b

r0 a , r1 b , i 1

ri 0
ri +1 ri 1 rem ri
i i +1

RETURN
gcd ( a, b ) = ri 1

Exemplu. Dac a, b , a = 360 , b = 105 . Cum


360 = 105i3 + 45
105 = 45i2 + 15
45 = 15i3 + 0
avem r0 = 360 , r1 = 105 , r2 = 360 rem105 = 45 , r3 = 105 rem 45 = 15 , r4 = 45 rem15 = 0 .

Rezult

lungimea

euclidian

cuplului

( 360,105)

este

n=3

gcd ( 360,105 ) = r3 = 15 .
Fie R un inel Euclidian i a, b R* cu ( a ) ( b ) . Dac n este lungimea
euclidian a cuplului ( a, b ) i d = rn = gcd ( a, b ) , atunci am observat c
d = gcd ( a, b ) = rn = sn a + tnb .
Numerele s = sn i t = tn pentru care gcd ( a, b ) = sa + tb se numesc coeficieni
Bzout pentru a i b .
Acum este clar c urmtorul algoritm, numit algoritmul Euclid extins calculeaz
pentru a, b R* cu ( a ) ( b ) att gcd ( a, b ) , ct i coeficienii Bzout pentru a i b

i lungimea euclidian a cuplului ( a, b ) .

INPUT a, b R* , ( a ) ( b ) , b | a
OUTPUT gcd ( a, b ) , coeficienii Bzout s , t pentru a i b i lungimea
euclidian n pentru ( a, b )
INITIALIZATION r0 a , r1 b , s0 1 , s1 0 , t0 0 , t1 1 ,
i 1
r

0
WHILE i
DO
qi ri 1 quo ri
ri +1 ri 1 rem ri
si +1 si 1 qi si
ti +1 ti 1 qi ti
i i +1
RETURN n i 1 , gcd ( a, b ) rn , s sn , t tn
Organigrama algoritmului Euclid extins este:

READ a,b

r0 a , r1 b , s0 1 , s1 0 ,
t0 0 , t1 1 , i 1

ri 0
n i 1

qi ri 1 quo ri ,
ri +1 ri 1 rem ri
si +1 si 1 qi si ,
ti +1 ti 1 qi ti ,
i i +1

RETURN
n, rn , sn , tn

Exemple
1. n inelul Euclidian ( ,

) fie a = 126 i b = 35 . Algoritmul Euclid pentru a i b

este
r0 = 126 = 35i3 + 21 = r1q1 + r2
35 = 21i1 + 14
21 = 14i1 + 7
14 = 7i2 + 0

Rezult c gcd (126,35 ) = 7 i lungimea euclidian a perechii (126,35 )


este n = 4 .
Folosind algoritmul Euclid extins putem determina i coeficienii Bzout
pentru cuplul de numere (126,35 ) . Calculele n algoritmul Euclid extins pot fi
prezentate n tabelul:
i
qi
ri
si
ti
0
126
1
0
1
3
35
0
1
2
1
21
1
-3
3
1
14
-1
4
4
2
7
2
-7
Dept coeficieni Bzout putem lua
s = s4 = 2 , t = t4 = 7
i avem
7 = gcd (126,35 ) = 2i126 + ( 7 )i35
2. n inelul Euclidian ( 3 [ X ] , grad ) fie polinoamele
f = X 4 + X 2 + 2 X , g = X 3 + 1 .
mpririle cu rest din algoritmul Euclid pentru f i g sunt
f ( X ) = g ( X )i X + X 2 + X

g ( X ) = ( X 2 + X ) X + 2 + X + 1

X 2 + X = X + 1 i X + 0
Ultimul rest nenul este r3 ( X ) = X + 1 , deci
gcd ( f , g ) = X + 1 .

Pentru calculul coeficienilor Bzout ai lui f i g folosim tabelul


i
qi
ri
si
ti
0
f
1
0
g
1
X
0
1
2

2
X +X
X + 2
1
2X
3
X
X + 1
2 X + 1 X 2 + 2 X + 1
2
Avem n = 3 , s = 2 X + 1 , t = X + 2 X + 1 i deci

(
) (
= ( 2 X + 1)( X + X

2
X + 1 = gcd ( f , g ) = 2 X + 1 f + X + 2 X + 1 g =
4

) (

)(

+ 2 X + X 2 + 2 X + 1 X 3 + 1

3. Algoritmul Euclid extins poate fi folosit pentru calculul inversului pentru a p ,

 1 n corpul .
a 0 , p numr prim. n acest sens s determinm 35
101
Algoritmul Euclid extins pentru a = 101 i b = 35 este

101 = 35i2 + 31
35 = 31i1 + 4
31 = 4i7 + 3
4 = 3i1 + 1
3 = 1i3 + 0
Cnd a p , a 0 , p prim, atunci p | a i gcd ( p, a ) = 1 . Dac s, t

sunt coeficienii Bzout pentru ( p, a ) , avem


1 = sp + ta
de unde, n p avem
1 = si p + tia = si0 + tia = tia
deci a 1 = t p .
Aplicnd, pentru p = 101 i a = 35 , algoritmul Euclid extins avem
i
qi
ri
si
ti
0
101
1
0
1
2
35
0
1
2
1
31
1
-2
3
7
4
-1
3
4
1
3
8 -23
5
3
1
-9 26
Avem
1 = gcd (101,35 ) = ( 9 )i101 + 26i35
 i35
 n , aadar 35
 1 = 26

de unde 1 = 26
101
1.2. Algoritmul chinez al resturilor

Fie R un inel E euclidian n raport cu funcia : R* i m1 , m2 ,..., mr R*

astfel nct gcd ( mi , m j ) = 1 oricare ar fi i j . Sub aceste ipoteze avem:

Lema 1 (lema chinez a resturilor). Oricare ar fi a1 , a2 ,..., ar R exist a R


astfel nct mi | a ai , i = 1, 2,..., r .

Fie m = m1m2 ...mr i pentru orice i = 1, 2,..., r , fie


m
Mi =
= m1...mi 1mi +1...mr .
mi
Pentru fiecare i fie si , ti R coeficienii Bzout pentru ( M i , mi ) . Aadar
si M i + ti mi = 1 , i = 1, 2,..., r .
Fie l i = si M i , i = 1, 2,..., r , numite elementele de interpolare Lagrange. Evident
mi |1 li i m j | li oricare ar fi j i .
r

Fie a = ai li . Cum
i =1

a ai = ai ( li 1) + a j l j , i = 1, 2,..., r
j i

rezult c mi | a ai , i = 1, 2,..., r .
Dac ( R, ) este un inel Euclidian i a, b R , spunem c a este prim cu b dac
gcd ( a, b ) = 1 .

Lema 2. Fie ( R, ) un inel Euclidian i a, b, c R .


(1) Dac gcd ( a, b ) = 1 i gcd ( a, c ) = 1 gcd ( a, bc ) = 1 .
(2) Dac a | bc i gcd ( a, b ) = 1 a | c
(3) Dac a | c , b | c i gcd ( a, b ) = 1 ab | c
(4) gcd ( ac, bc ) = cigcd ( a, b )
Algoritmul chinez al resturilor. Are forma
INPUT m1 , m2 ,..., mr R , gcd ( mi , m j ) = 1 , i j i a1 , a2 ,..., ar R
OUTPUT a R astfel nct mi | a ai , 1 i r
1. m m1m2 ...mr
m
2. M i
, 1 i r
mi
3. FOR 1 i r DO
CALL algoritmul Euclid extins i calculeaz coeficienii Bzout
( si , ti ) pentru ( M i , mi )
4. li si M i , 1 i r
r

5. a ai li
i =1

RETURN a
Observaie. Fie m1 , m2 ,..., mr * astfel nct gcd ( mi , m j ) = 1 oricare ar fi i j
i m = m1m2 ...mr .
Pentru m * notm cu
not

Rm = {0,1, 2,..., m 1} .

Aplicaia : Rm Rm1 Rm2 ... Rmr ,

( a ) = ( a rem m1 , a rem m2 ,..., a rem mr )

este bijectiv.
(a)

( a ) = ( a rem m1 , a rem m2 ,..., a rem mr ) se numete


reprezentarea modular a lui a n sistemul de module m1 , m2 ,..., mr .
Exemplul 1. Fie R = , m1 = 4 , m2 = 9 , m3 = 5 , a1 = 2 , a3 = 5 , a3 = 3 .
cu

a Rm ,

Rezult c m = m1m2 m3 = 180 , M 1 =

m
m
m
= 45 , M 2 =
= 20 , M 3 =
= 36 .
m1
m2
m3

Aplicnd algoritmul Euclid extins pentru a calcula coeficienii Bzout


pentru ( M i , mi ) , i = 1, 2,3 i numerele li = si M i , 1 i 3 se obine:
i
qi
ri
Cazul ( M 1 , m1 ) = ( 45, 4 )
0
45
45 = 4i11 + 1
1
11
4
4 = 1i4 + 0
2
4
1
Avem s = 1 , t = 11 , l1 = sM 1 = 45
i
qi
ri
Cazul ( M 2 , m2 ) = ( 20, 9 )
0
20
20 = 9i2 + 2
1
2
9
9 = 2i 4 + 1
2
4
2
2 = 1i2 + 0
3
2
1
Avem s = 4 , t = 9 , l2 = sM 2 = 80
i
qi
ri
Cazul ( M 3 , m3 ) = ( 36,5 )
0
36
36 = 5i7 + 1
1
7
5
5 = 1i5 + 0
2
5
1
Avem s = 1 , t = 7 , l3 = sM 3 = 36

si
1
0
1

ti
0
1
-11

si
1
0
1
-4

ti
0
1
-2
9

si
1
0
1

ti
0
1
-7

( si , ti )

Avem a = a1l1 + a2l2 + a3l3 = 2i45 + ( 5 )( 80 ) + 3i36 = 598 . Se verific faptul c:


4 | ( 598 4 ) , 9 | ( 598 ( 5 ) ) , 5 | ( 598 3) .
Exemplul 2. Fie m1 = 7 , m2 = 9 , m3 = 10 i m = m1m2 m3 = 630 .

(1) s determinm numerele de interpolare Lagrange l1 , l2 , l3 .

(2) Pentru n * avem ( ab ) rem n = ( ( a rem n )( b rem n ) ) rem n .


(3) Folosind (2) gsii (17i23) fr a calcula n prealabil 17i23 .
(4) Gsii p Rm astfel nct ( p ) = (17i23) i artai c p = 17i23
Soluie
(1) Avem M 1 = 90 , M 2 = 70 , M 3 = 63
Din
90 = 7i12 + 6

7 = 6i1 + 1
6 = 1i6 + 0

Din
70 = 9i7 + 7
9 = 7i1 + 2

7 = 2i3 + 1
2 = 1i2 + 0

0
1
2
3
i
0
1
2
3
4

qi
12
1
6
qi
9
1
3
2

ri
90
7
6
1
ri
70
9
7
2
1

si
1
0
1
-1
si
1
0
1
-1
4

ti
0
1
-12
13
ti
0
1
-7
8
-31

rezult c
l1 = ( 1)i90 = 90

rezult c
l2 = 4i70 = 280

Din
63 = 10i6 + 3

10 = 3i3 + 1
3 = 1i3 + 0

rezult c
ri
si
ti
l3 = ( 3)i63 = 189
0
63 1
0
1
10 0
1
2
3
1
-6
3
1
-3 10
(2) Putem scrie ab = nq + r , a = nq1 + r1 , b = nq2 + r2 i r1r2 = nq + r
q, r , q1 , r1 , q2 , r2 , q, r cu r , r1 , r2 , r Rn . Cum
qi
6
3
1

cu

nq + r = ab = n ( nq1q2 + q1r2 + q2 r1 ) + nq + r

i r , r Rn , rezult r = r , de unde afirmaia de la (2)


(3) Avem (17 ) = ( 3,8, 7 ) , ( 23) = ( 2,5,3) i folosind punctul (2) rezult

(17i23) = ( ( 2i3) rem 7, ( 8i5 ) rem 9, ( 7i3) rem10 ) = ( 6, 4,1)


(4) Fie p = 6l1 + 4l2 + 1l3 = ( 90 )i6 + 280i4 + ( 189 )i1 = 391 . Cum p = 391 R630 , iar
a = 17 < 630 , b = 23 < 630 , avem ab = 17i23 < 630 , deci 17i23 R630 .
Cum aplicaia : R630 R7 R9 R10 , ( c ) = ( c rem 7, c rem 9, c rem10 ) este

bijectiv i ( p ) = (17i23) , rezult c 17i23 = p = 391


Observaie. Dac 0 a, b < m , atunci ab Rm .
Exerciiul de mai sus, sugereaz o metod de nmulire a dou numere a , b (cu
statut de numere mari) la efectuarea produselor (de numere mici)
( a rem mi )i( b rem mi ) , i = 1, 2,..., r .

n exemplul precedent a = 17 , b = 23 i efectuarea produsului ab s-a redus la


efectuarea produselor 3i2 , 8i5 , 7i3 pe care la putem gsi n tabela nmulirii!
Aplicaie. Polinoamele de inperpolare Lagrange. Fie K un corp comutativ. Ne
situm n inelul Euclidian ( K [ X ] , grad ) .
Fie a1 , a2 ,..., an K distincte i polinoamele mi ( X ) = X ai , 1 i n . Avem
gcd ( mi ( X ) , m j ( X ) ) = 1 oricare ar fi i j . Cu pentru orice polinom f ( X ) K [ X ]
avem

f ( X ) = ( X ai ) qi ( X ) + f ( ai )

cu

qi ( X ) K [ X ] ,

rezult

f ( X ) rem ( X ai ) = f ( ai ) , 1 i n .
Aplicnd lema chinez a resturilor rezult c oricare ar fi
n
b = ( b1 , b2 ,..., bn ) K n K [ X ] exist un polinom f b ( X ) K [ X ] astfel nct
f b ( ai ) = f b ( X ) rem ( X ai ) = bi , 1 i n i deci punnd condiia grad f b < n va rezulta

c f b ( X ) este unic determinat.


Fie M i ( X ) =

m( X )
= ( X a j ) . Avem gcd ( M i ( X ) , mi ( X ) ) = 1 .
X ai j i

Cum exist qi ( X ) K [ X ] astfel nct M i ( X ) = ( X ai ) qi ( X ) + M i ( ai ) i


M i ( ai ) 0 , putem scrie

1
M i ( ai )

M ( X ) + ( qi ( X ) ) ( X ai ) = 1

, qi ( X ) sunt coeficienii Bzout pentru cuplul de polinoame


Aadar
M i ( ai )

( M i ( X ) , mi ( X ) ) , rezult c
def

li ( X ) =

Mi ( X )
m( X )
=
, 1 i n
M i ( ai ) ( X ai ) m ( ai )

unde m ( X ) este derivate polinomului m ( X ) , sunt polinoamele de interpolare


Lagrange.
Cum
1 pentru j = i
li ( a j ) =
,
0 pentru j i
def

atunci dac f b ( X ) = bi li ( X ) avem grad f b ( X ) < n i f b ( ai ) = bi , 1 i n .


i =1

Exemplu. S se determine polinomul f ( X ) [ X ] cu grad f < 3 care n

punctele a1 = 1 , a2 = 2 a3 = 3 ia respective valorile b1 = 2 , b2 = 3 , b3 = 2 .


Avem

Soluie.

M 1 ( X ) = ( X 2 )( X 3) ,
l1 ( X ) =

m1 ( X ) = X + 1 ,

m2 ( X ) = X 2 ,

M 2 ( X ) = ( X + 1)( X 3) ,

M 1 ( X ) ( X 2 )( X 3)
=
,
M 1 ( 1)
12

l2 ( X ) =

m3 ( X ) = X 3 ,

M 3 ( X ) = ( X + 1)( X 2 ) ,
M 2 ( X ) ( X + 1)( X 3)
=
,
M 2 ( 2)
3

M 3 ( X ) ( X + 1)( X 2 )
=
.
M 3 ( 3)
4
Rezult c
f b ( X ) = b1l1 ( X ) + b2l2 ( X ) + b3l3 ( X ) =

l3 ( X ) =

( x 2 )( X 3) +

( X + 1)( X 3) +

6
5
10
= X 2 X 3 [ X ]
3
3
Se verific faptul c

( X + 1)( X 2 ) =
2

f b ( 1) = 2 , f b ( 2 ) = 3 , f b ( 3) = 2 .

1.3. Algoritmi modulari pentru calculul determinanilor


Fie A = ( aij ) M n ( ) i d = det A . Pentru n * mare, calculul lui d pe
baza definiiei determinanilor presupune efectuarea unui numr foarte mare de operaii
aritmetice. Procedeul classic care elimin acest inconvenient este datorat lui Gauss. Prin
operaii elementare asupra liniilor determinantului (adunarea la o linie a altei linii

nmulite cu un numr raional, permutarea a dou linii) ne reducem la calculul


determinantului unei matrice superior triunghiulare.
i metoda Gauss are un inconvenient major: se introduce coeficieni raionali cu
numitori eventual foarte mari.
O metod modern de calcul pentru det A transfer calculul acestuia n M n ( p ) ,
p numr prim.
Mai prcis, o inegalitate a lui Hadamard (vezi 1.4) ne permite s determinm un
numr real M > 0 astfel nct d = det A < M . Se alega apoi un numr prim p astfel

nct 2 d < 2 M p i deci


p 1
).
2
Reducem

pe

p
p
p 1
p 1
< d < , sau nc
d
( p impar
2
2
2
2

A = ( aij ) M n ( )

modulo

obinem

matricea

A = ( aij ) M n ( p ) . Folosim metoda Gauss pentru calculul lui det A i fie r p ,

p
p
< r < astfel nct det A = r .
2
2
p
p
< r , d < rezult c d = r .
2
2
Metoda Gauss pentru calculul lui det A cu A M n ( p ) presupune s gsim a 1

Dar i deci p | r d . Cum

pentru anumite elemente a p , a 0 , ceea ce se face ca n exemplul 3, paragraful 1.1


i n acest mod se elimin inconvenientul coeficienilor fracionai.
Observaie. Dac A = ( aij ) M n ( ) exist q * astfel nct qA M n ( ) i
avem det A =

1
det ( qA ) . Ne reducem tot la calculul unui determinant cu coeficieni
qn

ntregi.
3 4
Exemplu. Fie A M 2 ( ) M 2 ( ) , A =
. S calculm det A .
5 2
a) Metoda Gauss. Adunm la linia a 2a prima linie nmulit cu

5
i
3

obinem
3 4
26
A=
=
5 =
26 = 3i = 26 .
5 2
3
0 2 + 4i
0
3
3
b) Metoda big prime. Alegem un numr prim p sufficient de mare astfel
3 4

nct 2 det A < p . Dac A = ( aij ) M n ( ) i b = max aij aij 0 ,


atunci conform inegalitii lui Hadamard (vezi 1.4) avem
n

det A n 2 b n .

3 4
n cazul nostru A =
, n = 2 , b = 5 , deci
5 2
2

det A 2 2 52 = 50
Alegem p = 101 > 2i50 2 det A .
Avem nevoie de inversul pivotului 3 0 n corpul 101 . n acest
scop aplicm algoritmul Euclid extins lui a = 101 i b = 3 .
i
qi
ri
si
ti
101 = 3i33 + 2

0
101 1
0
3 = 2i1 + 1
1
33
3
0
1
2 = 1i2 + 0

2
1
2
1
-33
3
2
1
-1 34
Coeficienii Bzout pentru perechea (101, 3) sunt s = 1 i t = 34 .
.
Avem 3 1 = 34
Folosind metoda Gauss pentru calculul lui det A , unde
3 4
A=
M 2 ( 101 ) avem
5 2

4
3 4 
3 4 3
det A =
=
=
= 228 = 26
 i4 0 96

5 2
0 2 + 5 i34
 , rezult
Cum d = det A i 26 sunt n intervalul [ 50,50] i d = 26

c det A = d = 26 .
c) Metoda small prime. Fie numerele prime 3, 5 i 7. Avem
3i5i7 = 105 > 2i50 2 d . Conform lemei chineze a resturilor avem
bijecia

105 3 5 7 ,

[ a ]105 ([ a ]3 , [ a ]5 , [ a ]7 ) ,

unde pentru

n i a , notm cu [ a ]n n clasa de resturi modulo n a lui a .


*

Fie det A = d i calculm [ d ]3 , [ d ]5 , [ d ]7 folosind metoda

Gauss n M 2 ( 3 ) , M 2 ( 5 ) , M 2 ( 7 ) respective. Se obine [ d ]3 = [ 2]3 ,

[ d ]5 = [1]5 , [ d ]7 = [5]7

i notm a1 = 2 , a2 = 1 , a3 = 5 .

Fie m1 = 3 , m2 = 5 , m3 = 7 i m = 3i5i7 = 105 , iar M 1 =


M2 =

m
= 35 ,
m1

m
m
= 21 , M 3 =
= 15 .
m2
m3
Folosind algoritmul Euclid extins se constat c ( 1,12 ) , (1, 4 ) ,

(1, 2 )

sunt coeficienii Bzout respective pentru perechile de numere

( M 1 , m1 ) , ( M 2 , m2 ) , ( M 3 , m3 ) . Numerele de interpolare Lagrange vor fi


l1 = ( 1) M 1 = 35 , l2 = 21 , l3 = 15 . Avem
a = ( l1a1 + l2 a2 + l3a3 ) rem105 = 26 rem105 = 26
Cum d , 26 [ 50,50] , rezult d = 26 .
1.4. Inegalitatea Hadamard
Fie n * i n spaiul vectorial peste corpul cu operaiile
( x1 ,..., xn ) + ( y1 ,..., yn ) = ( x1 + y1 ,..., xn + yn )

a ( x1 ,..., xn ) = ( ax1 ,..., axn )


i cu produsul scalar canonic
def

x, y = xi yi
i =1

x, y n , x = ( x1 ,..., xn ) , y = ( y1 ,..., yn ) .
Vom folosi norma vectorilor urmtoare

x =

x, x =

2
i

, x n , x = ( x1 ,..., xn ) .

i =1

Cu metoda Gram-Schmidt vom calcula o baz ortogonal v1* , v2* ,..., vn* pornind de
la o baz v1 , v2 ,..., vn a lui n , anume
v1* = v1
vi* = vi

v
ij

*
j

, unde i > 1

1 j <i

i determinm numerele ij astfel nct vi* , v*j = 0 , oricare ar fi i j , ceea ce revine la a


alege ij =

vi , v*j
v*j , v*j

, pentru 1 j < i , i = 1, 2,...,, n .

Avem deci
(*)

(Cum vectorii v1 ,..., vn

0 0 v1*
v1 1

*
v2 = 21 1 0 v2



*
vn n1 n 2 1 vn
sunt liniar independeni, avem vi* 0 , i = 1, 2,..., n i

evident v1* , v2* ,..., vn* sunt liniar independeni, cci sunt nenuli i ortogonali).
Teorema 1, Cu datele de mai sus, avem
(1) vi* vi , i = 1, 2,..., n

v1*
v1


(2) det = det ,
v
vn*
2

v1*
) i analog M n ( ) .
vn*

Teorema 2 (Inegalitatea Hadamard). Dac A = ( aij ) M n ( ) , vi = ( ai1 ,..., ain ) ,

v1

unde dac vi = ( vi1 ,..., vin ) , 1 i n , = ( vij ) M n (
v
n

1 i n i b = max aij 1 i, j n atunci


n

det A v1 ... vn n 2 b n .

Capitol 2. BAZE GRBNER


2.1. Ordine monomial. Lema Dickson
Definiie. Fie n * i n = {(1 ,..., n ) = k , 1 k n} . O relaie de
ordine pe n se numete relaie de ordine monomial dac satisface condiiile:
(1) este o relaie de ordine total
(2) < + < + , , , n
(3) 0 < , n , ( 0,..., 0 ) = 0 .
Exemple.
1) Ordinea lexicografic <lex . Dac , n , = (1 ,..., n ) , = ( 1 ,..., n ) i

, punem
def

< k < k unde k = min {i i i }


Se verific imediat c < notat nc <lex este o relaie de ordine
monomial pe n .
2) Ordinea deglex < deglex
n
n

<
i

i =1
i =1
def

< sau
n
n
i = i , <lex
i =1
i =1
3) Ordinea degrevlex < degrevlex

n
n

<
i i
i =1
i =1
def

< sau
n
n
i = i , k > k , k = max {i i i }
i =1
i =1
Exerciiu. Dac n = 2 , atunci < deglex < degrevlex .

introducem relaia de ordine produs direct pentru , n ,

Pe

= (1 ,..., n ) , = ( 1 ,..., n ) avnd


def

i i , i = 1, 2,..., n .
Se observ c relaia de ordine produs direct este parial: n 2 (1, 0 ) i ( 0,1)
sunt incomparabile n raport cu relaia de ordine produs direct.
Lema lui Dickson. Oricare ar fi A n , A , exist o parte finit B A
astfel nct A , B cu .
2.2. Ordine monomial pe inelul K [ X 1 ,..., X n ]
Fie K un corp comutativ, n * i K [ X 1 ,..., X n ] inelul polinoamelor n
nedeterminatele X 1 , , X n cu coeficieni n K .
Dac = (1 ,..., n ) n atunci uotm
not

X = X 1 1 X 2 2 ... X n n K [ X 1 , X 2 ,..., X n ]

numit monom n X 1 , X 2 ,..., X n .

= ( 2,3,1) ,

, 3 ,

Dac

Exemple.

= ( 3, 0, 2 ) ,

atunci

X = X X X = X X X3 , X = X X X = X X .
Notm cu M n mulimea tutror monoamelor n X 1 , X 2 ,..., X n ,
2
1

3
2

1
3

2
1

3
2

3
1

0
2

2
3

3
1

2
3

M n = X n
1
1

Dac X , X M n , X = X ... X n , X = X 1 1 ... X n n , atunci produsul X X

n inelul K [ X 1 ,..., X n ] este

+ 1

X X = X 1 1 ... X nn X 1 1 ... X nn = X 1 1

... X n n + n = X +

i evident M n devine monoid comutativ n raport cu aceast operaie, de element neutru


1 = X 10 X 20 ... X n0
Dac < este o relaie de ordine monomial pe n , atunci cu ajutorul acesteia
introducem pe M n relaia <
def

X < X <

i evident avem

(1) este relaie total pe M n


(2) X < X X X < X X , X , X , X M n
(3) 1 < X oricare ar fi n , ( 0,..., 0 )
Relaiile de ordine < pe M n obinute ca mai sus din relaii de ordine monomiale
n

pe se numesc relaii de ordine monomiale pe M n . Uneori vom spune c sunt relaii


de ordine monomiale pe K [ X 1 , X 2 ,..., X n ] . Astfel pe K [ X 1 , X 2 ,..., X n ] vom avea
relaiile de ordine monomiale lex, deglex i degrevlex corespunztoare relaiilor de ordine
monomiale de pe n .
Cum K [ X 1 , X 2 ,..., X n ] are o structur de spaiu vectorial n raport cu operaiile de
adunare i de nmulire cu scalari a polinoamelor,
K [ X 1 ,..., X 2 ] K [ X 1 ,..., X 2 ] K [ X 1 ,..., X 2 ] , ( f , g ) f + g
i
K K [ X 1 ,..., X 2 ] K [ X 1 ,..., X 2 ] , ( a, f ) af

i cum M n = X n

este o baz pentru acest spaiu vectorial, rezult c pentru

orice polinom f K [ X 1 ,..., X 2 ] , f 0 , exist elementele a K , n , aproape


toate nule i unic determinate astfel nct
f = a X
*

Mulimea finit
def

supp ( f ) = n a 0 .
se numete suportul polinomului f .
Mulimea

M ( f ) = X supp ( f ) M n
este mulimea monoamelor lui f , iar

T ( f ) = a X supp ( f )
se numete mulimea termenilor lui f .

Dac f K [ X 1 ,..., X 2 ] , f 0 i este o relaie de ordine monomial pe


K [ X 1 ,..., X 2 ] , atunci f poate fi scris sub forma

(*)
f = a1 X 1 + a2 X 2 + ... + am X m
cu ai K i i n , 1 i m astfel nct a1 > a2 > ... > am numit reprezentarea
canonic a lui f n raport cu . n acest caz definim:
def

hm ( f ) = X

ht ( f ) = a1 X

def

def

numit monomul principal (head monomial) al lui f ;


numit termenul principal (heat term) al lui f ;

hc ( f ) = a1 numit coeficientul principal (head coefficient) al lui f .

Exemple. Dac f [ X 1 , X 2 , X 3 ] ,
f = 3 X 12 X 2 X 3 4 X 1 X 24 X 32 + 2 X 13 X 2 X 3 + X 1 X 2 X 32
atunci reprezentarea canonic a lui f n raport cu relaia de ordine lex este

f = 2 X 13 X 2 X 3 + 3 X 12 X 2 X 3 4 X 1 X 24 X 32 + X 1 X 2 X 32
i avem hm ( f ) = X 13 X 2 X 3 , ht ( f ) = 2 X 13 X 2 X 3 i hc ( f ) = 2 .
Scrierea canonic a lui f n raport cu relaia de ordine monomial deglex este
f = 4 X 1 X 24 X 32 + 2 X 13 X 2 X 3 + 3 X 12 X 2 X 3 + X 1 X 2 X 32
Definiie. Dac f K [ X 1 ,..., X 2 ] , f 0 , atunci multigradul lui f n raport cu o
relaie de ordine monomial pe K [ X 1 ,..., X 2 ] este

def

mdeg ( f ) = max supp ( f )

Exemplu. Dac f [ X 1 , X 2 , X 3 ] este polinomul din exemplul precedent ,


atunci

mdeg ( f ) = ( 3,1,1) 3

raport

cu

relaia

de

ordine

lex

mdeg ( f ) = (1, 4,1) 3 n raport cu relaia de ordine deglex.


Pe baza definiiilor date se demonstreaz:
Lema 1. Fie o relaie de ordine monomial pe K [ X 1 ,..., X 2 ] i

f , g K [ X 1 ,..., X 2 ] . f 0 , g 0 . Avem
(1) mdeg ( fg ) = mdeg ( f ) + mdeg ( g )
(2) Dac f + g 0 , atunci
mdeg ( f + g ) max {mdeg ( f ) , mdeg ( g )} ,
cu

egalitate

dac

mdeg ( f ) mdeg ( g )

sau

mdeg ( f ) = mdeg ( g )

hc ( f ) hc ( g ) .
2.3. Teorema Hilbert a bazei
Fie R un inel comutativ cu 1 0 . O submulime nevid I a lui R se numete
ideal al lui R dac
(1) x, y I x + y I
(2) x I , q R xq I
Exemple.
1) Dac a1 , a2 ,..., am R i
def

I = a1 , a2 ,..., am = {a1q1 + a2 q2 + ... + am q m qi R, 1 i m}


atunci I este ideal al lui R , numit idealul generat de a1 , a2 ,..., am
2) Dac S este o submulime (eventual infinit) a lui R , atunci

I = S = a1q1 + ... + am qm m * , a1 ,..., am S , q1 ,..., qm R

este ideal al lui R , numit idealul generat de S .

Definiie. Spunem c un ideal I al inelului R este finit generat dac exist un


numr finit de elemente a1 , a2 ,..., am R astfel nct I = a1 , a2 ,..., am .
Spunem c inelul R este noetherian (de la numele algebristei E. Noether) dac
orice ideal al lui R este finit generat.
Dac I 0 I1 ... I k ... este un lan infinit de ideale ale inelului noetherian R ,
atunci exist m * astfel nct I m = I m +1 = ... .
Exemple. Inelele i K [ X ] , K corp comutativ sunt noetheriene pentru c orice
ideal I al lui (respective K [ X ] ) este principal (generat de un singur element).
Teorema 1 (Hilbert). Dac R este inel noetherian, atunci R [ X ] este inel
noetherian.
Corolar 1. Dac R este noetherian, atunci R [ X 1 ,..., X n ] este noetherian.
Corolar 2. Dac K este corp comutativ atunci K [ X 1 ,..., X n ] este inel noetherian.

Lema 1. Fie o ordine monomial pe M n = X n

} i

X , X Mn .

Dac X divide pe X , adic exist X M n astfel nct X = X X , atunci

X X .
Teorema 2. Dac este o relaie de ordine monomial pe M n , atunci este
o bun ordine: orice parte nevid S a lui M n are un cel mai mic element (exist X S
astfel nct X X , X S ).
Observaie. Se folosete rezultatul: dac R este inel noetherian i I1 I 2 ...
este un lan ascendant infinit de ideale ale lui R , atunci exist m astfel nct I m = I m +1 .
def

Aceast proprietate se stabilete astfel: se observ c I = I k este ideal al lui R , deci


k =1

exist a1 ,..., ar R astfel nct I = a1 ,..., ar . Exist m astfel nct a1 ,..., ar I m i


atunci I = a1 ,..., am I m I m +1 ... I de unde I m = I m +1 .
2.4. Algoritmul REDPOL
S observm c n cazul n = 1 relaia de ordine monomial lex, coincide cu relaia
de ordine natural pe , 0 < 1 < 2 < ... i pentru relaia de ordine monomial asociat pe
K [ X 1 ] i avem
X 1s < X 1t s < t .

Dac notm X 1 = X i f K [ X ] , f 0 , atunci reprezentarea canonic a lui f


n raport cu relaia lex este
f = aX n + an1 X n 1 + ... + a1 X + a0 , a 0
adic scrierea n ordinea descresctoare a exponenilor nedeterminatei X (termenii cu
coeficienii egali cu 0 pot fi omii).
Dac avem ns polinomul g K [ X ] , g 0 ,

g = bX m + bm1 X m 1 + ... + b1 X + b0 , b 0
atunci hm ( g ) divide hm ( f ) m n . n acest caz pasul standard n algoritmul
mpririi euclidiene a lui f prin g este:
def

h= f

ht ( f )
a nm
X g= f
g
b
ht ( g )

Algoritmul mpririi euclidiene al lui f prin g produce dou polinoame unic


determinate q, r K [ X ] astfel nct
f = gq + r , grad r < grad g pentru r 0

Fie acum f , g K [ X 1 ,..., X n ] , f 0 , g 0 care n raport cu o relaie de ordine


monomial admit reprezentrile canonice

f = a1 X 1 + a2 X 2 + ... + am X m
g = b1 X

+ b2 X

+ ... + bp X

Vom spune c f este top-reductibil modulo g dac hm ( g ) = X


hm ( f ) = X , adic exist n astfel nct X
polinomul
1

= X X = X

1 +

divide

. n acest caz

ht ( f )
a1 X 1
f1 = f
g= f
g

ht ( g )
b1 X 1
def

se numete redusul modulo g al polinomului f i scriem f


f1 .
g
Se observ c

a1bp p +
a1 X 1
a b +

g = a1 X 1 + 1 2 X 2 + ... +
X
1
b1
b1
b1 X

i cum

1 = 1 + > 2 + > ... > p +


rezult c atunci cnd f1 0 avem G = { g1 ,..., g m }
X

= hm ( f ) > hm ( f1 ) .

Dac f , g1 ,..., g m K [ X 1 ,..., X n ] sunt polinoame nenule i, spunem c f este

top-reductibil modulo G dac exist gi G astfel nct f este top-reductibil modulo


gi .

Evident pot exista mai multe polinoame gi G astfel nct f s fie top-reductibil
modulo gi .
Spunem c un polinom r K [ X 1 ,..., X n ] , r 0 este redus modulo G dac
hm ( gi ) | X oricare ar fi supp ( r ) i oricare ar fi i = 1, 2,..., m .

Teorema 1. Fie G = { g1 ,..., g m } K [ X 1 ,..., X n ] , gi 0 oricare ar fi i = 1, 2,..., m .


f K [ X 1 ,..., X n ] ,

Atunci oricare ar fi polinomul

f 0

exist polinoamele

q1 ,..., qm , r K [ X 1 ,..., X n ] astfel nct

1.

f = g1q1 + g 2 q2 + ... + g m qm + r cu r redus modulo G cnd r 0 ;

2. mdeg ( gi qi ) mdeg ( f )

oricare

ar

fi

astfel

nct

qi 0

mdeg ( r ) mdeg ( f ) .
Demonstraia acestei teoreme revine la a proba finitudinea i corectitudinea
urmtorului algoritm.

Algoritmul REDPOL (reducerea polinoamelor)


INPUT Polinoamele nenule f , g1 , , g m din K [ X 1 ,..., X n ] i o relaie
de ordine monomial n K [ X 1 ,..., X n ]
OUTPUT

Polinoamele

q1 ,

qm ,

astfel

nct

f = g1q1 + ... + g m qm + r cu r redus modulo G = { g1 ,..., g m } ,

mdeg ( gi qi ) mdeg ( f ) dac qi 0 i mdeg ( r ) mdeg ( f )


1. r 0 , p f , FOR i = 1, 2,..., m DO qi 0
2. WHILE p 0 DO
IF ht ( gi ) divide ht ( p ) pentru un i {1, 2,..., m}
THEN

alege
p p

un

astfel

de

i,

qi qi +

ht ( p )
,
ht ( gi )

ht ( p )
gi
ht ( gi )

ELSE r r + ht ( p ) , p p ht ( p )
3. RETURN q1 , , qm , r
Observaie. Cnd exist mai muli i astfel nct ht ( g i ) divide ht ( p ) , putem
allege ntotdeauna i minim (maxim, etc.).

Organigrama algoritmului REDPOL este

READ f , g1 ,..., g m

r 0 , p f , qi 0 , 1 i m

p0
RETURN
q1 ,..., qm , r

IF ht ( g i ) divide ht ( p )
THEN alege un astfel de i ,
ht ( p )
,
qi qi +
ht ( gi )
p p

ELSE

ht ( p )
gi
ht ( gi )

r r + ht ( p ) ,
p p ht ( p )

Exemplul

1.

f , g1 , g 2 [ X 1 , X 2 ] ,

Fie

f = X 12 X 23 2 X 12 X 2 + X 1 X 2 ,

g1 = X 12 X 2 2 X 1 , g 2 = X 1 X 2 + X 2 . Alegem ordinea monomial lex i s aplicm

algoritmul REDPOL polinomului f modulo G = { g1 , g 2 } . Fie p = f


Pas 1. ht ( g1 ) = X 12 X 2 divide ht ( p ) = X 12 X 23 i deci q1 = X 22 , q2 = 0 i
p p

ht ( p )
g1 = 2 X 12 X 2 + 2 X 1 X 22 + X 1 X 2
ht ( g1 )

Pas 2. ht ( g1 ) = X 12 X 2 divide ht ( p ) = 2 X 12 X 2 i deci q1 = X 22 2 , q2 = 0 i


p p

ht ( p )
g1 = 2 X 1 X 22 + X 1 X 2 4 X 1
ht ( g1 )

Pas 3. ht ( g 2 ) = X 1 X 2 divide ht ( p ) = 2 X 1 X 22 i deci q1 = X 22 2 , q2 = 2 X 2 i


ht ( p )
g2 = X1 X 2 4 X1 2 X 2
ht ( g 2 )

p p

Pas 4. ht ( g 2 ) = X 1 X 2 divide ht ( p ) = X 1 X 2 i deci q1 = X 22 2 , q2 = 2 X 2 + 1 i


p p

ht ( p )
g 2 = 4 X 1 2 X 22 X 2
ht ( g 2 )

Pas 5. r r + ( 4 X 1 ) = 4 X 1 , p p ( 4 X 1 ) = 2 X 22 X 2

Pas 6. r r + ( 2 X 22 ) = 4 X 1 2 X 22 , p p ( 2 X 22 ) = X 2

Pas 7. r r + ( X 2 ) = 4 X 1 2 X 22 X 2 , p p ( X 2 ) = 0
RETURN q1 = X 22 2 , q2 = 2 X 2 + 1 , r = 4 X 1 2 X 22 X 2 i avem

f = g1q1 + g 2 q2 + r = ( X 12 X 2 2 X 1 )( X 22 2 ) + ( X 1 X 2 + X 2 )( 2 X 2 + 1) 4 X 1 2 X 22 X 2

cu r = 4 X 1 2 X 22 X 2 redus modulo G = { g1 , g 2 }
Calculele precedente pot fi prezentate ca mai jos
g1 = X 12 X 2 2 X 1 g 2 = X 1 X 2 + X 2 r
p = f = X 12 X 23 2 X 12 X 2 + X 1 X 2

X 22

p = 2 X 12 X 2 + 2 X 1 X 22 + X 1 X 2

-2

( X 12 X 23 2 X 1 X 22 )

( 2 X 12 + 4 X 1 )

p = 2 X 1 X 22 + X 1 X 2 4 X 1

2 X1

p = X1 X 2 4 X1 2 X 2

( 2 X 1 X 22 + 2 X 22 )
( X1 X 2 + X 2 )

p = 4 X 1 2 X 22 X 2

4 X 1

p = 2 X X 2

2 X 22

2
2

p = X2
p=0

X2
q2 = 2 X 2 + 1

q1 = X 2
2
2

r = 4 X 1 2 X 22 X 2

Se observ c
- q1 este suma termenilor de pe coloana lui g1
- q2 este suma termenilor de pe coloana lui g 2
Avem f = g1q1 + g 2 q2 + r . Sistemul de polinoame

( q1 , q2 )

se numete ctul

mpririi lui f prin mulimea G = { g1 , g 2 } i scriem

( q1 , q2 ) =

f quo G

iar r se numete restul mpririi lui f prin G i scriem


r = f rem G .
Dn exemplul urmtor va rezulta c restul i ctul nu sun tunic determinai. Sursa
acestui fenomen poate fi faptul c putem avea mai multe opiuni pentru polinomul gi G
astfel nct ht ( gi ) | ht ( p ) . n exemplul urmtor aceast situaie apare la pasul 2 al
algoritmului.
Exemplul 2. Fie f = X 12 X 2 + X 1 X 22 + X 22 , g1 = X 1 X 2 1 , g 2 = X 22 1 i ordinea
lex pe [ X 1 , X 2 ] . Avem urmtoarele dou variante pentru nprirea cu rest a lui f prin
G = { g1 , g 2 } .
g1 = X 1 X 2 1
X 12 X 2 + X 1 X 22 + X 22

X1

X 1 X 22 + X 1 + X 22

X2

g 2 = X 22 1

( X 12 X 2 X 1 )
( X 1 X 22 X 2 )
X 1 + X 22 + X 2

X1

X 22 + X 2

( X 22 1)

1
0
Avem

X1 + X 2

1
X1 + 1

f quo G = ( X 1 + X 2 ,1)
f rem G = X 1 + 1

i deci

f = g1q1 + g 2 q2 + r = ( X 1 X 2 1)( X 1 + X 2 ) + ( X 22 1)i1 + X 1 + 1

La pasul 2 din while loop putem alege i = 2 i avem:


g1 = X 1 X 2 1
g 2 = X 22 1
X 12 X 2 + X 1 X 22 + X 22

X1

( X 12 X 2 X 1 )
X 1 X 22 + X 1 + X 22

X1

( X 1 X 22 X 1 )
2X 1 + X 22

2 X1
1

2
2

- ( X 22 1)
1
0

X1 + 1

X1

Avem

1
2 X1 + 1

f quo G = ( X 1 , X 1 + 1)
f rem G = 2 X 1 + 1

i deci

f = g1q1 + g 2 q2 + r = ( X 1 X 2 1) X 1 + ( X 22 1)i( X 1 + 1) + 2 X 1 + 1

2.5. Baze Grbner


Definiie. Un ideal I al inelului K [ X 1 ,..., X n ] se numete ideal monomial dac
def

exist A n astfel nct I = X A , unde X A = { X A} .


Lema 1. Fie I = X A , A n un ideal monomial i n . Atunci
X I A a.i. X | X

Corolar 1. Dac I = X A

cu A n exist B A , B finit astfel nct

I = XB .

Dac G K [ X 1 ,..., X n ] , notm cu ht ( G ) = {ht ( g ) g G} .


Corolar 2. Dac I este un ideal monomial al inelului K [ X 1 ,..., X n ] , I 0 , atunci

exist

G I \ {0} ,

finit

astfel

nct

ht ( G ) = ht ( I ) ,

unde

ht ( I ) = {ht ( f ) f I , f 0} .

Lema 2. Fie I un ideal al lui K [ X 1 ,..., X n ] i G I \ {0} , G finit astfel nct


ht ( G ) = ht ( I ) . Atunci G = I .

Observaie. Poate exista pentru un ideal I al inelului K [ X 1 ,..., X n ] un system

finit de generatori G = { g1 ,..., g m } , adic G = I i totui ht ( G ) ht ( I ) .

g1 , g 2 [ X 1 , X 2 ] ,

Astfel, dac

I = G , unde

G = { g1 , g 2 }

g1 = X 14 2 X 1 X 2 ,

g 2 = X 12 X 2 2 X 22 + X 1 ,

i dac alegem relaia de ordine deglex, atunci

x12 = g1 ( X 2 ) + g 2 X 1 I ns X 12 ht ( G ) = X 13 , X 12 X 2 , deci X 13 , X 12 X 2 ht ( I ) .

Definiie. Fie o relaie de ordine monomial i I un ideal al lui


K [ X 1 ,..., X n ] . O submulime finit G de polinoame nenuke ale lui I se numete baz

Grbner pentru I dac ht ( G ) = ht ( I ) .


Observaie. Rezultatele precedente (corolar 2 i lema 2) arat c orice ideal I al
lui K [ X 1 ,..., X n ] admite o baz Grbner G n raport cu o relaie de ordine monomial

dat i I = G .
Lema 3. Fie G = { g1 ,..., g m } o baz Grbner pentru un ideal I

al lui

K [ X 1 ,..., X n ] i f K [ X 1 ,..., X n ] . Atunci exist un unic polinom r astfel


(1) f r I
(2) Dac r 0 , r este redus modulo G .
Aadar avem:
Teorema 1. Fie G o baz Grbner pentru un ideal I al inelului K [ X 1 ,..., X n ] n

raport cu o relaie de ordine monomial i f K [ X 1 ,..., X n ] . Atunci


f I f rem G = 0 .
2.6. S polinoame. Algoritmul Buckberger
Definiie. Fie f , g K [ X 1 ,..., X n ] , f 0 , g 0 , < o ordine monomial pe

K [ X 1 ,..., X n ] , mdeg ( f ) = = (1 ,..., n ) , mdeg ( g ) = = ( 1 ,..., n ) i = ( 1 ,..., n ) ,


unde i = max { i , i } , 1 i n . Polinomul
X
X
f
g K [ X 1 ,..., X n ]
ht ( f )
ht ( g )
se numete S polinomul lui f i g n raport cu ordinea monomial <.
def

S ( f ,g) =

Observaie. Cum

X
X
,
K [ X 1 ,..., X n ] rezult c S ( f , g ) f , g . De
ht ( f ) ht ( g )

asemenea S ( g , f ) = S ( f , g ) .
Exemplu. Fie

f , g [ X1, X 2 ] ,

f = X 13 X 2 + 3 X 1 X 22 ,

g = X 1 X 22 + X 2 . S

calculm S ( f , g ) n raport cu ordinea lex.


Avem mdeg ( f ) = ( 3,1) = 2 , mdeg ( g ) = (1, 2 ) = 2 . Dac = ( 3, 2 )
avem:

S ( f , g) =

X
X
f
g = X 2 ( X 13 X 2 + 3 X 1 X 22 ) X 12 ( X 1 X 22 + X 2 ) =
ht ( f )
ht ( g )

= X 12 X 2 + 3 X 1 X 23
Lema 1 (Buckberger). O mulime finit G = { g1 ,..., g m } de polinoame nenule din

K [ X 1 ,..., X n ] este o baz Grbner n raport cu o relaie de ordine monomial pentru


idealul I = G dac i numai dac S ( gi , g j ) rem G = 0 pentru 1 i < j m .
Teorema 1. Dat o ordine monomial pe K [ X 1 ,..., X n ] i o mulime
F = { f1 ,..., ft } de polinoame nenule din K [ X 1 ,..., X n ] , urmtorul algoritm (algoritmul
Buckberger) calculeaz o baz Grbner G F pentru idealul I = F .

INPUT F = { f1 ,..., ft } K [ X 1 ,..., X n ]

OUTPUT G = { g1 ,..., g m } cu g i = fi , 1 i t , baz Grbner pentru


idealul I = F = G .
INITIALIZATION G F , G
WHILE G DO
Alege ( f , g ) G

G G \ {( f , g )}
h S ( f , g ) rem G
IF h 0 THEN
G G {h}

G G {( g , h ) g G}
RETURN G

{( f , f ) f , f G, i < j}
i

Organigrama algoritmului Buckberger este

READ F = { f1 ,..., ft }

G F = { f1 ,..., ft } , G

{( f , f ) 1 i < j t}
i

RETURN G

Alege

( f , g ) G

G G \ {( f , g )}
h S ( f , g ) rem G

h0
G G {h}

G G {( g , h ) g G}

Exemplul 1. Fie f1 , f 2 [ X 1 , X 2 ] , f1 = X 1 X 2 X 2 , f 2 = X 1 + X 22 i relaia de


ordine lex. S determinm o baz Grbner pentru idealul I = F , unde F = { f1 , f 2 } .
Folosin algoritmul Buckberger.
Iniializare: G { f1 , f 2 } , G {( f1 , f 2 )} .
Pas 1. alegen ( f1 , f 2 )

G G \ {( f1 , f 2 )} =
S ( f1 , f 2 ) = f1 + X 2 f 2 = X 1 X 2 X 2 X 1 X 2 + X 23 = X 23 X 2 = h = f3 cu h 0 redus
modulo G = { f1 , f 2 }

G G {( f1 , f3 ) , ( f 2 , f3 )} = {( f1 , f3 ) , ( f 2 , f3 )}

G G { f 3 } = { f1 , f 2 , f3 }
Pas 2. alegen ( f1 , f 3 )

G {( f 2 , f3 )}

S ( f1 , f3 ) = X 22 ( X 1 X 2 X 2 ) X 1 ( X 23 X 2 ) = X 1 X 2 X 23

Aflm ( X 1 X 2 X 23 ) rem G cu G = { f1 , f 2 , f 3}

f1 = X 1 X 2 X 2
X 1 X 2 X 23

f 2 = X 1 + X 22

f 3 = X 23 X 2

( X1 X 2 X 2 )
X 23 + X 2

-1

( 1) ( X 23 X 2 )
q1 = 1

q2 = 0

q3 = 1

0=h

Pas 3.
G
S ( f 2 , f3 ) = X 23 f 2 X 1 f3 = X 1 X 2 X 25
Aflm ( X 1 X 2 X 25 ) rem G cu G = { f1 , f 2 , f3}
f1 = X 1 X 2 X 2
X 1 X 2 X 25

f 2 = X 1 + X 22

f 3 = X 23 X 2

( X1 X 2 X 2 )
X 25 + X 2

X 22 1

( X 22 1)( X 23 X 2 )
q1 = 1

q2 = 0

q3 = X 22 1

0=h

Pas 4. G = ; Return G = { f1 , f 2 , f3} baz Grbner pentru I = f1 , f 2 .


Capitol 3. ALGORITMI DE FACTORIZARE A POLINOAMELOR
CU COEFICIENI NTR-UN CORP FINIT

3.1. Generaliti asupra corpurilor finite


Reamintim c un inel K cu 1 0 se numete corp dac orice element a K ,
a 0 are invers n K . Vom nota prin , , respectiv corpul numerelor raionale,
reale, complexe. Dac p este un numr prim vom nota cu p corpul claselor de resturi


2,...,

p 1 .
modulo p , p = 0,1,
Spunem c un corp K este finit dac numrul elementelor sale este finit. O
teorem a lui Wedderburn, stabilit n 1905, arat c orice corp finit este comutativ.
Avem n vedere numai corpurile comutative.

Dac K este un corp, atunci un corp L care admite pe K ca subcorp se numete


extindere a lui K . Vom folosi notaiile K L sau L / K pentru a consemna c L este
extindere a lui K .
Exemple de extinderi: , , .
Dac L este o extindere a lui K , atunci L are o structur de spaiu vectorial
peste corpul K : vectorii sunt elementele corpului L , adunarea vectorilor este operaia de
adunare a corpului L ,
L L L , ( x, y ) x + y
iar nmulirea vectorilor cu scalar (din K ) este nmulirea din L restrns la perechi
( a, x ) cu a K , x L ,
K L L , ( a, x ) ax .
n acest caz dimensiunea lui L ca spaiu vectorial peste K se numete gradul
extinderii K L i notm
not

[ L : K ] = dim K L .
Teorema 1. Fie F un corp finit cu q elemente i p ordinal lui 1 F n grupul
aditiv ( F , + ) al corpului F . Atunci
(1) p este numr prim;
(2) q = p m cu m * ;
(3) ( a + b ) = a p + b p , ( a + b )
p

pn

= a p + b p , n * .

Numrul p din enunul teoremei precedente se numete caracteristica corpului


finit F .

Cum 1
+ 1 
+ ... +
1 = p = 0 n p , rezult c corpul p , p numr prim, are
p ori

caracteristica egal cu p .
Vom folosi urmtorul rezultat din teorema corpurilor commutative:
Teorema 2. Fie K un corp i f K [ X ] un polinom de grad n , n > 0 .
f = aX n + an 1 X n 1 + ... + a1 X + a0 , a 0 .
Atunci exist o extindere L a lui K i 1 , 2 ,..., n L astfel nct
(*)
f = a ( X 1 )( X 2 ) ... ( X n )

Observaie. Cu datele din enunul teoremei 2, avem f ( i ) = 0 , 1 i n , adic

1 , 2 ,..., n sunt rdcini (din L ) ale lui f . Dac L este astfel nct f ( ) = 0 ,
atunci avem n corpul L relaia
a ( 1 )( 2 ) ... ( n ) = 0 .
Cum L este corp, exist i astfel nct i = 0 , adic = i . Aadar
1 , 2 ,..., n sunt singurele rdcini din L ale lui f .
n (*) se poate s avem i = j pentru o pereche de indici i , j cu i j . n acest
caz spunem c f are rdcini multiple.

Dac f K [ X ] , f = a0 + a1 X + a2 X 2 + ... + an X n , atunci polinomulse numete


derivate (formal) a lui f i, ca n cazul funciilor reale de variabil real avem

oricare ar fi

(f
f ,g K [X ]

+ g ) = f + g , ( fg ) = f g + fg , a = 0

i a K .

Se arat imediat c K este rdcin multipl pentru f K [ X ] (adic


f ( X ) = ( X ) g ( X ) , cu g K [ X ] ) dac i numai dac f ( ) = f ( ) = 0 .
Rezultatul de la punctual 2 al teoremei 1 admite urmtoarea reciproc:
Teorema 3. Fie p, m * cu p prim. Atunci exist un corp F cu q = p m
elemente.
Observaie. Se poate demonstra c oricare dou corpuri cu q elemente sunt
izomorfe. Aadar pentru orice numr q = p m cu p prim i m * exist, mai puin un
izomorfism, un unic corp cu q elemente care se noteaz cu Fp . n particular putem lua
2

Fp = p .

Lem. Fie ( G,i ) un grup abelian finit, S = {ord a a G} i m = max S . Atunci


d | m oricare ar fi d S .
O proprietate fundamental a corpurilor finite este:
Teorema 4 (a elementului primitive). Dac Fq este un corp cu q elemente,

atunci exist Fq* = Fq \ {0} astfel nct ord = q 1 n grupul multiplicative ( Fq* ,i,1)
al corpului Fq . n particular avem
Fq = {0,1, , 2 ,..., q 1} .
Teorema 5. Fie extinderile K F i F L de grad finit, m = [ F : K ] i

n = [ L : F ] . Atunci extinderea K L este de grad finit i

[ L : K ] = mn = [ F : K ]i[ L : F ] .
Reciproc, dac extinderea K L este de grad finit, atunci K F i F L sunt
extinderi de grad finit.
Fie K un corp comutativ i f K [ X ] , grad f = n > 0 . Spunem c f este
reductibil peste K dac exist g , h K [ X ] astfel nct f = gh , grad g < n , grad h < n .

n caz contrar spunem c f este ireductibil peste K . Evident, polinoamele de grad 1 din
K [ X ] sunt ireductibile peste K .
Orice polinom f K [ X ] cu grad f = n > 0 este sau ireductibil sau produc de
polinoame ireductibile. n adevr, dac n = 1 , atunci f este ireductibil. Dac n > 1 i f
nu este ireductibil, atunci f = gh cu g , h K [ X ] , 0 < grad g < n , 0 < grad f < n .
Presupunnd c orice polinom de grad mai mic dect n este ireductibil sau produs de
polinoame ireductibile, rezult c g i h au aceast proprietate i deci f este produs de
polinoame ireductibile.

Restrngndune doar la polinoame monice (polinoame cu coeficientul dominant


egal cu 1) i folosind aritmetica de inel Euclidian a lui K [ X ] se poate demonstra c orice
polinom monic f din K [ X ] , grad f > 0 se reprezint n mod unic ca produs de
polinoame monice ireductibile (adic K [ X ] este inel factorial). Mai mult, f se
reprezint n mod unic astfel:
e
e
(*)
f = f1 1 f 2 2 ... f rer cu ei * , i = 1, 2,..., r
unde f1 , f 2 ,..., f r sunt polinome monice ireductibile distincte. Reprezentarea (*) a lui f
se numete descompunerea canonic a lui f .
Scopul acestui capitol este s prezentm algoritmi pentru calculul descompunerii
canonice ale polinoamelor n cazul cnd K este un corp finit Fq . Ne vom mrgini la
cazul cnd K = p = Fp , p prim cu toate c algoritmii prezentai se extend imediat la
cazul K = Fq , q = p m , m * .
Dac K L este o extindere de corpuri commutative i L , atunci spunem c
este algebric peste K dac exist g K [ X ] , grad g > 0 astfel nct g ( ) = 0 .
Polinomul monic f din K [ X ] de grad minim care admite pe ca rdcin este
ireductibil peste K i divide orice polinom g K [ X ] cu proprietatea g ( ) = 0 . Vom
folosi notaia
f = Irr ( , K )
pentru polinomul monic de grad minim care admite pe ca rdcin i se numete
polinomul minimal al elementului algebric .
Dac grad f = d , atunci 1, , 2 ,..., d 1 sunt liniar independente i
not

K + K + ... + K d 1 = K ( )

este subcorp al lui L , extinderea K K ( ) are gradul d .


3.2. Algoritmul SQUARE FREE

Fie f p [ X ] un polinom monic de grad n > 0 i


e
e
(*)
f = f1 1 f 2 2 ... f rer cu ei * , i = 1, 2,..., r
descompunerea canonic a lui f ca produs de puteri de polinoame ireductibile distincte
f1 , f 2 ,..., f r . Notm cu Irr p ( f ) mulimea divizorilor monici ireductibile peste p ai lui
f,

Irr p ( f ) = { f1 , f 2 ,..., f r } .
ndat ce cunoatem Irr p ( f ) , numerele ei din descompunerea canonic a lui f
se afl folosind algoritmul mpririi euclidiene a lui f prin f i , f i 2 ,... i avem

ei = max k * f i k | f , 1 i r .

Polinomul
def

Sqfree ( f ) = f1 f 2 ... f r =

fi Irr

(f)
p

fi

se numete partea liber de ptrate a lui f .


Determinarea divizorilor monici ireductibile ai lui f revine la determinarea
factorilor ireductibile ai polinomului Sqfree ( f ) care eventual are un grad mult mai mic
dect cel al lui f .

Teorema 1. Fie

f p [ X ] un polinom monic de grad n > 0 . Exist

polinoamele monice g , h p [ X ] unic determinate astfel nct f = g p h i p | h


oricare ar fi Irr p ( f ) .
Reprezentarea lui f sub forma f = g p h ca n enunul teoremei se numete
descompunerea standard a lui f .

Lema 1. Fie f p [ X ] . Sunt echivalente afirmaiile:


(1) f = 0
(2) Exist g p [ X ] astfel nct f = g .
Corolar. Fie f p [ X ] un polinom ireductibil. Atunci f 0 i gcd ( f , f ) = 1 .
Definiie. Un polinom f p [ X ] , grad f > 0 este liber de ptrate (square free)
dac nu se divide prin ptratul unui polinom ireductibil din p [ X ] .

Lema 2. Fie f p [ X ] un polinom monic de grad mai mared ca zero. Sunt


echivalente afirmaiile:
(1) gcd ( f , f ) = 1
(2) f este liber de ptrate.

Lema 3. Fie f p [ X ] un polinom monic de grad mai mare ca zero i


f = f f ... f rer descompunerea sa canonic. Atunci
(1) f = 0 p | ei , 1 i r
e1 e2
1
2

e
e 1
(2) gcd ( f , f ) = f i i i f i i
p|e

i
p | ei

f
= fi
(3)
gcd ( f , f ) p | ei

Corolar. Dac p | f oricare ar fi Irr p ( f ) atunci


Sqfree ( f ) =

f
.
gcd ( f , f )

Teorema 2. Fie f p [ X ] de grad mai mare dect zero un polinom monic i


f = g p h descompunerea standard. Fie G0 = f i Gi +1 = gcd ( Gi , Gi ) , i 0 . Fie k astfel
nct Gi 0 pentru orice i < k i Gk = 0 . Atunci Gk = g p i h = f quo Gk .
Dac f = g p h este descompunerea standard a polinomului f p [ X ] , vom
folosi notaia DS ( f ) = g p h . Teorema precedent fundamenteaz urmtorul algoritm
pentru calculul descompunerii standard (algoritmul DS).
INPUT f p [ X ] \ p , f monic
OUTPUT DS ( f ) = g p h
1. G f
2. WHILE G 0 DO G gcd ( G, G )
3. calculeaz g p [ X ] astfel nct G = g p
4. h f quo G
5. RETURN DS ( f ) = g p h
Organigrama algoritmului DS este
G f

G 0

Calcul g p [ X ]

G gcd ( G, G )

cu G = g p

h f quo G

RETURN
DS ( f ) = g p h
Dac G 0 , atunci grad ( gcd ( G, G ) ) < grad G , ceea ce asigur finitudinea
algoritmului DS. Corectitudinea algoritmului DS este probat la teorema 2.
Exemplu. Fie X 5 X 2 + 1 3 [ X ] i s gsim DS ( f ) .

Conform algoritmului DS se efectueaz secvena de operaii


G f

) ( 2 X + X + 1 )
G gcd ( G, G ) = X ( X + 1 )
G X ( X + 1 )
G gcd ( G, G ) = X ( X + 1 )
G 0 , G g = ( X ( X + 1 ) )
h f quo g = X ( X + 1 )
DS ( f ) = g h cu g = X ( X + 1 ) i h = X ( X
G X 4 X 2 + 1

+ 1

Urmtorul algoritm (numit algoritmul SQFREE) determin pentru orice polinom


f p [ X ] \ p , partea liber de ptrate a lui f , notat cu Sqfree ( f ) .

Algoritmul SQFREE

1. f

2. CALL algoritmul DS i calculeaz DS ( f ) = g 3h


3. IF g 1 THEN
4.

g p 1

h
.
gcd ( h, h )

5. RETURN Sqfree ( f )
Exemplu. Fie

f 3 [ X ] , f = X 5 X 2 + 1 = X 13 + X 11 + X 7 + X 5 . Pentru a

determina Sqfree ( f ) se execut secvena de operaii:

f = X 5 X 2 + 1

DS ( ) = g 3h cu g = X X 2 + 1 , h = X 2 ( X 2 + 1)

= X 3 X 2 + 1

DS ( ) = X 3 X 2 + 1

cu g = X , h = ( X 2 + 1)

= X ( X 2 + 1) = h
2

X X 2 + 1
h
=

gcd ( h, h )
X 2 + 1

= X X 2 + 1

Sqfree ( f ) = = X X 2 + 1

3.3. Algoritmul Berlekamp


Teorema 1. Fie f p [ X ] un polinom monic de grad n > 0 . Sunt echivalente
afirmaiile:
(1) polinomul f are cel puin doi divizori monici ireductibili distinci

(2) exist un polinom monic p [ X ] cu 1 grad < n astfel nct f divide pe

p .
S precizm acum cum putem determina un polinom p [ X ] ,
n 1
= c0 + c1 X + ... + c
, 0 , astfel nct un polinom monic dat f p [ X ] de grad
n 1 X

n s divid pe p .
Se observ c.
n 1
p = c0 + c1 X + ... + c
n 1 X

( n 1) p
= c0 + c1 X p + ... + c
n 1 X

Efectund mprirea cu rest a polinoamelor X ip , 1 i < n prin f avem


X ip = f ( X ) qi ( X ) + ri ( X ) ,
qi , ri p [ X ] ,
1 i < n ,
unde
r ( X ) = r + r X + ... + r X n 1 . Rezult c
i

i0

i1

i ,( n 1)

n 1

( X ) ( X ) = ci ( ri ( X ) X i ) + f ( X ) q ( X )
p

cu q p [ X ] .

i =0

Rezult c f divide pe p dac i numai dac f divide polinomul


n 1

h ( X ) = ci ( ri ( X ) X i ) .
i =0

Dac h 0 , avem grad h < n , deci f divide h dac i numai dac h = 0 ceea ce revibe
la
(*)

c0 , c1 ,..., c


n 1 Q = 0, 0,..., 0

) (

unde
r
1
r
01
00


r
r11 1
Q = 10


r r
n 1,1
n1,0

1, n 1
Mn ( p )

rn 1.n1 1

r
0, n 1

r

p
Dac = c0 , atunci p = c0 c0 = 0 , deci sistemul omogen (*) admite
0 cu c i admite doar asemenea soluii dac i numai
ntotdeauna soluia c0 , 0,...,
0
p

dac rang G = n 1 i n acest caz dac f este liber de ptrate, atunci f este ireductibil.
Conform observaiilor din paragraful 3.2 este sufficient s tim s factorizm
polinoame libere de ptrate.
Berlekamp a imaginat urmtoarea procedur de factorizare a unui polinom f
liber de ptrate din p [ X ] ca produs de polinoame ireductibile (algoritmul Berlekamp).
1.

Se

calculeaz

matricea

Q = R In Mn ( p )

unde

n = grad f

( )

R = rij M n ( p ) ,

n 1 , 0 i < n .
X ip = fqi + r
0 i + r1i X + ... + rn 1,i X

2.
3.

Dac rang Q = n 1 se deduce c f este ireductibil.


Dac rang G < n se allege o soluie c , c ,..., c .

n 1

4.

Sistemului omogen (*) cu cel puin o component ci 0 pentru i 1 i se


asociaz polinomul
n 1
( X ) = c0 + c1 X + ... + c
p [X ] .
n 1 X

5.

Se determin urmtoarea descompunere a lui f


(**)
f = gcd ( f , p ) =

gcd ( f , c )

c p

i se aplic fiecrui factor ireductibil a lui f din reprezentarea (**) (avem cel
puin doi!) pn se determin toi divizorii monici ireductibile distinci ai lui f .

Vom nota n continuare clasele 0,1,...,
p 1 din mai simplu cu 0,1, , p-1
p

Exemplul 1. S descompunem polinomul f = X 5 + X + 1 2 [ X ] ca produs de


polinoame ireductibile.
Cum f = X 4 + 1 i gcd ( f , f ) = gcd ( X 5 + X + 1, X 4 + 1) = 1 , rezult c
Sqfree ( f ) = f .
S mprim cu rest polinoamele X 2i , 0 i < 5 prin f ,
X 0
2
X
4
X
6
X
X 8

Rezult c

= f ( X )i 0 + 1
= f ( X )i 0 + X 2
= f ( X )i 0 + X 4
= f ( X )i X + X + X 2
= f ( X )i X 3 + X 3 + X 4

0
R = 0

0
0

0
0 0 0 0 0

0
0 1 1 0 0
1 M5 ( 2 ) , Q = R I5 = 0 0 1 0 1 M5 ( 2 )

0
0 1 1 1 0
0 0 0 1 0
1

2
3
4
Coeficienii polinomului = c0 + c1 X + c2 X + c3 X + c4 X 2 [ X ] astfel nct
0
0
0
1
0

0
1
0
1
0

0
0
0
0
1

f | 2 sunt soluii ale sistemului omogen peste 2 ,

c1 + c3 = 0

c1 + c2 + c3 = 0
( c0 , c1 , c2 , c3 , c4 ) Q = ( 0, 0, 0, 0, 0 )
c3 + c4 = 0
c3 = 0
Cum rang G = 3 < 5 , exist polinoame 2 [ X ] astfel nct f | 2 i
1 grad < 5 . Soluia general este ( , , 0, , ) , cu , 2 = {0,1} . Lund = 0 i

= 1 , gsim = X + X 3 + X 4 .
Avem
f = gcd ( f , 2 ) = gcd ( f , )igcd ( f , 1) =
= gcd ( X 5 + X + 1, X 4 + X 3 + X )igcd ( X 5 + X + 1, X 4 + X 3 + X + 1) =
= ( X 3 + X 2 + 1)( X 2 + X + 1)
Cum polinoamele de grad 2 sau 3 din K [ X ] , K corp, sunt ireductibile dac i
numai dac nu admit rdcini n K , rezult c X 3 + X 2 + 1 X 2 + X + 1 sunt ireductibile
peste 2 = {0,1} pentru c nu admit rdcini n 2 .

Aadar f = ( X 3 + X 2 + 1)( X 2 + X + 1) este descompunerea lui f ca produs de


polinoame ireductibile monice distincte.
Exemplul 2. Fie polinomul F = X 12 + X 9 + X 3 + X 3 [ X ] , i s determinm
descompunerea canonic a lui F .
def

Aplicnd algoritmul SQFREE, gsim Sqfree ( F ) = X 4 + X 3 + X + 2 = f (de fapt


avem F = f 3 .
S detrminm matricea G . S mprim cu rest polinoamele X 3i , 0 i < 4 prin
polinomul f ,
X 0 =
3
X =
X 6 =

9
X =
Rezult c

f i0 + 1
f i0 + X 3
f ( X 2 + 2 x + 1) + 1 + X + 2 X 2 + X 3
f ( X 5 + 2X 4 + X 3 + X 2 + X ) + X

0
R=
1

0
Se gsete

0 0 0
0

0 0 1
0
M4 (3 ) , Q = R I4 =
1
1 2 1

1 0 0
0
rang Q = 2 , deci f este reductibil.

0 0 0

2 0 1
M4 (3 )
1 1 1

1 0 2

S determinm polinomul 3 [ X ] , = c0 + c1 X + c2 X 2 + c3 X 3 astfel nct


f | 3 i 1 grad < 4
Coeficienii lui sunt o soluie pentru sistemul omogen peste 3 = {0,1, 2} ,

( c0 , c1 , c2 , c3 ) Q = ( 0, 0, 0, 0 ) , adic
c2 = 0

2c1 + c2 + c3 = 0
.

c2 = 0
c1 = 2c3 = 0
Soluia general este ( , , 0, ) cu , 3 = {0,1, 2} . Lund = 0 i = 1
gsim = X 3 + X . Avem

f = gcd ( f , 3 ) = gcd ( f , )igcd ( f , 1)igcd ( f , 2 ) =


= ( X 2 + 1)( X 2 + X + 2 )
Cum polinoamele X 2 + 1 i X 2 + X + 2 sunt ireductibile peste 3 (pentru c nu
admit rrcini n 3 ) descompunerea canonc a lui f este
f = ( X 2 + 1)( X 2 + X + 2 )

iar cea a lui F este


F = ( X 2 + 1) ( X 2 + X + 2 )
3

3.4. Factorizarea grade distincte


Fie f p [ X ] un polinom monic liber de ptrate i

s = max grad Irr p ( f ) .


Pentru orice i * , 1 i s , notm cu gi produsul tuturor divizorilor ireductibili de
grad i ai lui f . Punem gi = 1 dac f nu admite divizori ireductibili de grad i . Evident
gs 1.
Ansamblul ( g1 , g 2 ,..., g s ) se numete descompunerea grade distincte a lui f i
avem f = g1 g 2 ...g s numit factorizarea grade distincte.
Exemplu. Ansamblul
distincte a polinomului i avem

(X

+ X , X 4 + X 3 + X + 1

este descompunerea grade

f = g1 g 2 = ( X 2 + X ) X 2 + X 3 + X + 1

n acest paragraph vom da un algoritm pentru determinarea descompunerii grade


distincte (algoritmul DD distinct degrees) a unui polinom liber de ptrate din p [ X ] .
Avem nevoie de:
Teorema 1. Fie p un numr prim, m * i f un polinom monic ireductibil de
grad d din p [ X ] . Atunci
m

f divide pe X p X d divide pe m .
m

Corolar 1. Polinomul X p X este egal cu produsul tuturor polinoamelor


monice ireductibile din p [ X ] al cror grad divide pe m .
Teorema 2. Fie f p [ X ] un polinom monic liber de ptrate. Urmtorul
algoritm produce descompunerea grade distincte ( g1 , g 2 ,..., g s ) a lui f .

Algorimul DD (distinct degree)


INPUT f p [ X ] , f polinom monic liber de ptrate
OUTPUT descompunerea grade distincte ( g1 , g 2 ,..., g s ) a lui f
1. h0 X , f 0 f , i 0
2. REPEAT
i i +1
hi hi 1 rem f
gi gcd ( hi X , f i 1 ) , f i

f i 1
gi

UNTIL f i = 1
3. s i
RETURN ( g1 , g 2 ,..., g s )

Exemplu. Fie p = 3 i f = X 8 + X 7 X 6 + X 5 X 3 X 2 X 3 [ X ] . Avem


gcd ( f , f ) = 1 deci f este liber de ptrate. Folosin notaiile 3 = {0,1, 2} pentru
elementele lui 3 .
h1 = h03 rem f = X 3 rem f = X 3

g1 = gcd ( h1 X , f 0 ) = gcd ( X 3 X , f ) = X
f1 =

f0
= X 7 + X 6 X 5 + X 4 X 2 X 1
g1

h2 = h13 rem f = x9 rem f = X 7 + X 6 + X 5 + X 4 X

g 2 = gcd ( h2 X , f1 ) = gcd ( X 7 + X 6 + X 5 + X 4 X , f1 ) = X 4 + X 3 + X 1

f2 =

f1 X 7 + X 6 X 5 + X 4 X 2 X 1
=
= X 3 X +1
g2
X 4 + X 3 + X 1

Cum X 3 X + 1 este ireductibil peste 3 (nu are rdcini n 3 ) avem


g 3 = X 3 X + 1 i deci

( g1 , g 2 , g3 ) = ( X , X 4 + X 3 + X 1, X 3 X + 1)

este descompunerea grade distincte a lui f . Avem


f = X ( X 4 + X 3 + X 1)( X 3 X + 1)
In plus tim c factorul X 4 + X 3 + X 1 este produs de dou polinoame
ireductibile de grad 2.

S-ar putea să vă placă și