Inicio · Parte 00 — Pensamiento matemático desde cero
orden: paréntesis → potencias → producto/división → suma/resta
la potenciación asocia por la derecha: a**b**c = a**(b**c)
−a**n = −(aⁿ)
Una expresión escrita en una línea es una notación comprimida de un árbol. 2+3*4 no es ambiguo para una máquina porque las reglas de precedencia determinan un único árbol: la multiplicación se agrupa antes que la suma. La ambigüedad está solo en la cabeza de quien lee sin conocer las reglas.
Dos reglas concentran casi todos los errores. La primera es la asociatividad de la potenciación por la derecha: 232 es 2(32) = 2⁹ = 512. Es la convención matemática estándar y la que implementan Python, R y las calculadoras científicas; algunas hojas de cálculo hacen lo contrario, lo que produce discrepancias reales entre un cuaderno y un script.
La segunda es que el signo menos unario tiene menor precedencia que la potenciación: −3**2 es −(3²) = −9, no (−3)² = 9. Este error aparece constantemente al trasladar una fórmula de un paper a código, y no produce una excepción: produce un número con el signo equivocado.
La conclusión práctica no es memorizar la tabla completa, sino adoptar un hábito: poner paréntesis donde la lectura no sea inmediata. Los paréntesis redundantes no cuestan nada en tiempo de ejecución y eliminan una clase entera de errores. En una fórmula que otra persona va a auditar, la claridad vale más que la brevedad.
Cuatro expresiones que se leen mal con frecuencia.
2 + 3 * 4 = 2 + 12 = 14 (no 20)
(2 + 3) * 4 = 5 * 4 = 20
2 ** 3 ** 2 = 2 ** 9 = 512 (asocia por la derecha)
(2 ** 3) ** 2 = 8 ** 2 = 64
-3 ** 2 = -(3²) = -9 (el menos va después)
(-3) ** 2 = 9
Escribir (2 3) 2 cuando se quiere decir eso no es redundancia: es documentación ejecutable.
Precedencia y asociatividad: dos lecturas de la misma cadena.
python classes/part-00-pensamiento-matematico-desde-cero/010-orden-de-operaciones-y-parentesis/lab.py
compmath run 010
2+3*4(2+3)*42**3**2 (asocia derecha)(2**3)**2-3**2(-3)**2{
"2+3*4": 14,
"(2+3)*4": 20,
"2**3**2 (asocia derecha)": 512,
"(2**3)**2": 64,
"-3**2": -9,
"(-3)**2": 9
}
Trasladar fórmulas de un paper a código sin cambiar su significado. Es la causa número uno de discrepancias al reproducir un resultado publicado.
Toda métrica de un modelo (accuracy, loss, learning rate) es una razón, un porcentaje o una escala. Interpretarlas mal es el primer error de un practicante de IA.
10.48550/arxiv.math/9205211 verificado en DataCite (2026-08-19).