2 votos

La forma más eficiente de calcular las raíces cúbicas primitivas de la unidad

Entiendo que la definición de una raíz cúbica primitiva de la unidad en un campo finito $\mathbb{F}_p$ son todos aquellos números $x$ tales que $x^3=1$ pero $x\neq 1$ y $x^2 \neq 1$

Cuando tenemos un $p$ pequeño, digamos $p=7$, podemos calcular estos a través de 'fuerza bruta' - es decir, llenando la siguiente tabla:

\begin{array}{|c|cccccc|} \hline x & x^1 & x^2 & x^3 & x^4 & x^5 & x^6\\ \hline 1 & \underline{\bf{1}} & 1 & 1 & 1 & 1 & 1\\ 2 & 2 & 4 & \bf{\underline{1}} & 2 & 4 & 1\\ 3 & 3 & 2 & 6 & 4 & 5 & \underline{\bf{1}}\\ 4 & 4 & 2 & \underline{\bf{1}} & 4 & 2 & 1\\ 5 & 5 & 4 & 6 & 2 & 3 & \underline{\bf{1}}\\ 6 & 6 & \underline{\bf{1}} & 6 & 1 & 6 & 1\\ \hline \end{array}

Luego buscamos a lo largo de todas las filas cualquier valor de $x$ que tenga el primer valor de $1$ en la columna de $x^3$; en este ejemplo tenemos las raíces cúbicas primitivas de la unidad como $2$ y $4$ (primer valor de $1$ en cada fila está en negrita y subrayado en la tabla anterior)

Sin embargo, esto se vuelve poco factible cuando $p$ se vuelve muy grande.

¿Alguien puede indicarme un método fácil para calcular las raíces cúbicas primitivas de la unidad que requiera la menor cantidad de cálculos posible (eventualmente implementaré esto en Python usando valores de $p$ de varios cientos de dígitos de longitud)

0 votos

¿Es $p$ primo? Sin embargo, para un primo $p\ne2$, el hecho de que $x^3-1=(x-1)(x^2+x+1)$, da como resultado que sume al cálculo de $2^{p-2}\cdot\left(-1\pm\lambda\right)$, donde $\lambda^2=-3\pmod p$. Aunque en realidad no ganas mucho en tiempo de ejecución en comparación con tu primera suposición.

1 votos

No tengo respuesta a tu pregunta, pero ten en cuenta que cuando encuentras $a\in \mathbb F_p$ como una raíz cúbica primitiva de la unidad, entonces la otra raíz cúbica es $a^2$, y no necesitas buscar a través de $a+1, a+2,\ldots$ etc. Además, antes de hacer cualquier trabajo, vale la pena verificar si el campo tiene raíces cúbicas de la unidad (que no sean $1$) en él. Esto es "fácil" de verificar ya que necesariamente $p-1$ debe ser un múltiplo de $3$. Si se conoce $p$ en términos de su representación en base 10, la prueba es fácil de llevar a cabo. Si $p$ solo se conoce en representación base 2, es un poco más complicado.

0 votos

@ G.Sassatelli Sí, $p$ es primo. Y gracias por eso

2voto

DonAntonio Puntos 104482

Tal vez me falte algo aquí, pero todo se resume en calcular las raíces de $\;x^2+x+1=0\,\pmod p\;$ , y así tenemos que saber si $\;-3\;$ es un residuo cuadrático, y entonces

$$\binom{-3}p=1\iff p=1\pmod3$$

Así, por ejemplo en $\;\Bbb F_{17}\;$ no hay raíces primitivas de las raíces cúbicas de la unidad, pero en $\;\Bbb F_{19}\;$ sí las hay: $\;7\;,\;\;11\;$, obtenidas de la fórmula cuadrática usual para $\;x^2+x+1=0\;$ :

$$\Delta=1-4=-3=16\pmod{19}\implies $$

$$x_{1,2}=\frac{-1\pm\sqrt{16}}2=\frac{-1\pm4}2=\begin{cases}-\frac52=-5\cdot10=-50=-12=7\pmod{19}\\{}\\\frac32=3\cdot10=30=11\pmod{19}\end{cases}$$

Observa que también sabemos, en general, que si $\;\omega\;$ es raíz cúbica primitiva entonces también lo es $\;\omega^2\;$, por lo que si sabemos que $\;7\pmod{19}\;$ lo es, entonces también lo es $\;7^2=11\pmod{19}\;$

0 votos

¡Gracias, ahora tiene mucho más sentido!

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X