Metoda Kronecker este o metodă de descompunere a unui polinom cucoeficienți întregi în factori ireductibili peste inelul de numere întregi; propusă în 1882 de Kronecker .
Algoritmul Kronecker găsește pentru un polinom dat un polinom astfel încât să fie divizibil cu , sau demonstrează că nu există un astfel de polinom.
Algoritmul Kronecker se bazează pe următoarele considerații:
Astfel, pentru că există un număr finit de posibilități; prin împărțire directă, verificăm dacă am primit divizorul polinomului .
Declarație strictă:
Să considerăm un polinom de grad . Să aducem peste . Atunci unul dintre cele două polinoame și are cel mult grad . Lăsați fără pierdere de generalitate . Atunci , prin urmare . Luați în considerare diferite numere întregi astfel încât . Deoarece numerele au un număr finit de divizori întregi, este posibil să se repete peste toate seturile posibile de valori pentru . Pentru fiecare astfel de mulțime, construim un polinom de interpolare de grad . Dacă acum , la polinoame și puteți aplica aceeași metodă și așa mai departe până când toți factorii devin ireductibili. În caz contrar, dacă , polinomul este deja ireductibil.
Dat:
Necesar:
Unde: este gradul polinomului , este gradul polinomului , este un număr întreg.
Цикл от до
Если () то Ответ найден. Конец еслиКонец цикла
Если (ответ не найден) то
— множество делителей (целочисленных) Цикл от до — множество делителей (целочисленных) декартово произведение и Цикл для каждого Построить многочлен степени , такой, что для Если ( делится на ) то Решение успешно найдено, ответ Конец если Конец цикла Конец циклаКонец если
Конец.
COMETARIU. Este suficient să înveți cum să factorizezi polinoame cu un coeficient de conducere egal cu unu. Într-adevăr, dacă coeficientul principal este , atunci înmulțind cu și făcând substituția , reducem problema la acest caz. După rezolvare, rămâne de făcut substituția inversă și de a reduce cu factorul comun a n−1 . Cu toate acestea, această metodă se dovedește de obicei a fi ineficientă: din cauza creșterii coeficienților, diverse estimări și viteza algoritmilor se deteriorează. Prin urmare, în majoritatea algoritmilor de lucru, astfel de transformări nu sunt efectuate.
(acesta este un polinom cu coeficienți întregi și fără rădăcini raționale). Dacă unde gradul k al polinomului nu este mai mare decât gradul , atunci . Apoi . Divizori ai acestor numere: pentru primul +1 și -1, pentru al doilea +1, -1, +5, -5, pentru al treilea +1, -1, +3, -3, +7, -7, + 21, - 21. În total, se obțin combinații . Două combinații care diferă doar prin semn dau în esență un polinom. Prin urmare, doar jumătate poate fi verificată. Au mai rămas 32 de cazuri. Parcurgând toate aceste cazuri, puteți găsi un singur polinom de împărțire de gradul 2 . Aceasta este . Ambii factori ai acestei expansiuni sunt ireductibili (ca polinoame de gradul 2 și 3, care nu au rădăcini raționale).
Fie un domeniu de integritate cu o factorizare unică, . Este necesar să se descompună în factori ireductibili.
Având în vedere :
Este necesar : - descompunere
Variabile : polinom , expansiune polinomială , set de elemente de tip .
Idee de implementare : Reduceți problema la un caz unidimensional prin introducerea unei noi necunoscute și înlocuirea tuturor variabilelor cu puteri suficient de mari ale acestei necunoscute. Factorizați polinomul rezultat. Efectuați înlocuirea înapoi, diviziunea de testare pentru a vă asigura că se obține expansiunea dorită.
Început
Alegeți un număr întreg mai mare decât puterile variabilelor individuale pentru a înlocui toate variabilele cu puterile noii necunoscute :
Factorizează -l în factori ireductibili, adică
.numar_de_multiplicatori := 1
Цикл пока
Цикл для каждого подмножества пока Если делится на то .множитель[.число_множителей]:= .число_множителей:=.число_множителей + 1 .удалить{} Конец если Конец циклаКонец цикла
.множитель[.число_множителей]:=
Конец
În acest algoritm, transformarea inversă este determinată pe monomii prin formula:
pentru , apoi se propagă liniar.