Icono
|Estudiar
TemarioRazonamiento lógico-matemáticoTema 6

Tema 6

Álgebra básica aplicada a programación

Patrón de examen

Busca fórmulas cerradas antes de usar ciclos. Si necesitas aⁿ mod m, usa exponenciación rápida. Las sumatorias cerradas convierten O(n) en O(1).

Explicación

Expresiones y precedencia

En C++ las expresiones algebraicas siguen la misma precedencia que en matemáticas:

  1. Paréntesis ()
  2. Potencia (no hay operador, usar pow())
  3. Multiplicación *, división /, módulo %
  4. Suma +, resta -

Despeje de fórmulas (razonamiento algebraico)

En olimpiadas frecuentemente necesitas despejar antes de programar:

Fórmula originalDespejando x
y = mx + bx = (y - b) / m
ax² + bx + c = 0x = (-b ± √(b²-4ac)) / 2a
d = v × tt = d / v

Sumatorias útiles

SumatoriaFórmula cerrada
1 + 2 + ... + nn(n+1)/2
1² + 2² + ... + n²n(n+1)(2n+1)/6
1 + 2 + 4 + ... + 2ⁿ2ⁿ⁺¹ - 1

Estas fórmulas permiten calcular sumas en O(1) en vez de O(n).

Progresiones

Aritmética: a, a+d, a+2d, ... → Término n: a + (n-1)*d, Suma: n*(2a + (n-1)*d)/2

Geométrica: a, a×r, a×r², ... → Término n: a * r^(n-1), Suma: a*(r^n - 1)/(r - 1)

Exponenciación rápida

Calcular aⁿ mod m en O(log n) en vez de O(n). Esencial para números grandes con módulo.