Dado un polinomio integral de grado estrictamente mayor que uno, descomponerlo completamente en una composición de polinomios integrales de grado estrictamente mayor que uno.
Detalles
- Un polinomio integral es un polinomio con solo enteros como coeficientes.
- Dados dos polinomios
p
yq
la composición se define por(p∘q)(x):=p(q(x))
. - La descomposición de un polinomio integral
p
es una secuencia ordenada finita de polinomios integralesq1,q2,...,qn
dondedeg qi > 1
for all1 ≤ i ≤ n
andp(x) = q1(q2(...qn(x)...))
, y todosqi
no son más descomponibles. La descomposición no es necesariamente única. - Puede usar, por ejemplo, listas de coeficientes o tipos de polinomios incorporados como entrada y salida.
- Tenga en cuenta que muchas de las funciones integradas para esta tarea realmente descomponen los polinomios sobre un campo determinado y no necesariamente enteros, mientras que este desafío requiere una descomposición de polinomios enteros. (Algunos polinomios enteros pueden admitir la descomposición en polinomios enteros, así como la descomposición que contiene polinomios racionales).
Ejemplos
x^2 + 1
[x^2 + 1] (all polynomials of degree 2 or less are not decomposable)
x^6 - 6x^5 + 15x^4 - 20x^3 + 15x^2 - 6 x - 1
[x^3 - 2, x^2 - 2x + 1]
x^4 - 8x^3 + 18x^2 - 8x + 2
[x^2 + 1, x^2 - 4x + 1]
x^6 + x^2 + 1
[x^3 + x + 1, x^2]
x^6
[x^2, x^3]
x^8 + 4x^6 + 6x^4 + 4x^2 + 4 = (x^2 + 1)^4 + 3
[x^2 + 3, x^2, x^2 + 1]
x^6 + 6x^4 + x^3 + 9x^2 + 3x - 5
[x^2 + x - 5, x^3 + 3*x], [x^2 + 5*x + 1, x^3 + 3*x - 2]
Use Maxima para generar ejemplos: ¡ Pruébelo en línea!
Algunos algoritmos de descomposición se pueden encontrar aquí y aquí .
divisors
función en Pari / GP siempre devuelve polinomios primitivos cuando toma un polinomio integral. Se puede demostrar que sip=q∘r
, dondep
yr
son integrales, yr
es primitivo conr(0)=0
, entoncesq
también debe ser integral. Aquíp
,q
,r
corresponden af
,g
,h
en el papel.Wolfram Language (Mathematica) , 29 bytes
Pruébalo en línea!
Tengo el ejemplo configurado aquí para componer un polinomio aleatorio a partir de cuadráticos aleatorios (o menos), expandirlo y luego tratar de descomponerlo.
Es necesario complicar el polinomio con la variable ficticia (a) ya que el incorporado no intentará descomponer un monomio.
Noto que la respuesta a menudo tiene coeficientes mucho más grandes que en la composición original, pero de hecho siempre son enteros.
fuente
Decompose[]
siempre devolverá polinomios integrales (si se alimenta con polinomios enteros)? Cuando discutimos en el chat recientemente, no pudimos encontrar nada al respecto.Options@Decompose
y te lo dirá{Modulus->0}
. Ahora busque Modulus y verá "La configuración Modulus-> 0 especifica el anillo completo [DoubleStruckCapitalZ] de enteros".