Przejdź do zawartości

Algorytm Cantora-Zassenhausa

Z Wikipedii, wolnej encyklopedii

Algorytm Cantora-Zassenhausaalgorytm probabilistyczny faktoryzacji wielomianów o współczynnikach w ciele skończonym. Został opisany przez Davida Cantora i Hansa Zassenhausa w 1981.

Redukcja dowolnego wielomianu do poprawnego wejścia[edytuj | edytuj kod]

Faktoryzacja dowolnego wielomianu może być sprowadzona do przypadku bezkwadratowego poprzez obliczanie największego wspólnego dzielnika wielomianu i jego pochodnej. Sprowadzenie do przypadku wielomianów o czynnikach równych stopni jest dokonywane przez następujący algorytm:

Wejście: bezkwadratowy wielomian o współczynnikach w ciele -elementowym
Wyjście: zbiór par takich, że jest iloczynem wszystkich czynników nierozkładalnych wielomianu stopnia
1. Przyjmij
2. Znajdź największy wspólny dzielnik wielomianów i może być on znaleziony algorytmem Euklidesa i przyjmij
3. Jeśli przyjmij oraz
4. Zwiększ o 1.
5. Jeśli przejdź do kroku 2.
6. Jeśli przyjmij

Opis algorytmu[edytuj | edytuj kod]

Wejście: bezkwadratowy wielomian stopnia o współczynnikach w ciele -elementowym, którego wszystkie nierozkładalne czynniki są wielomianami stopnia
Wyjście: nietrywialny dzielnik wielomianu (w ponad połowie prób).
1. Wybierz losowy wielomian stopnia mniejszego niż
2. Przyjmij
3. Znajdź największy wspólny dzielnik wielomianów i jeśli nie jest on równy 1 lub to jest to szukany dzielnik.

Złożoność i poprawność[edytuj | edytuj kod]

Algorytm ma złożoność obliczeniową (czas oczekiwany).

Poprawność redukcji opiera się na fakcie:

  • Wielomian jest iloczynem wszystkich wielomianów nierozkładalnych stopni dzielących

Poprawność algorytmu opiera się na faktach:

  • Pierścień jest iloczynem prostym ciał
  • Dla losowego wielomianu składowa wielomianu w danym z tych ciał jest zerem z prawdopodobieństwem

Bibliografia[edytuj | edytuj kod]

  • David G. Cantor, Hans Zassenhaus, A New Algorithm for Factoring Polynomials Over Finite Fields, 1981.