58. Progresiones aritméticas

Una progresión aritmética es una sucesión donde cada término se obtiene sumando siempre la misma diferencia.

58.1 Introducción

Una progresión aritmética es una sucesión numérica con diferencia constante entre términos consecutivos.

5, 8, 11, 14, 17, ...
La diferencia común es 3.

Este patrón aparece en contadores, posiciones igualmente separadas, cuotas fijas y aumentos regulares.

58.2 Diferencia común

La diferencia común se obtiene restando un término menos el anterior.

d = a₂ - a₁
d = 8 - 5 = 3

Si la diferencia se mantiene igual en toda la sucesión, la progresión es aritmética.

58.3 Término general

El término general permite calcular cualquier término de la progresión usando su posición.

aₙ = a₁ + (n - 1)d

En esta fórmula, a₁ es el primer término, d es la diferencia común y n es la posición.

58.4 Calcular un término

Si una progresión comienza en 5 y aumenta de 3 en 3, el término 10 se calcula así:

a₁ = 5
d = 3
a₁₀ = 5 + (10 - 1)3
a₁₀ = 32

La fórmula evita generar todos los términos anteriores.

58.5 Término general en JavaScript

La fórmula se puede implementar como una función que recibe el primer término, la diferencia y la posición.

function terminoAritmetico(primero, diferencia, posicion) {
  return primero + (posicion - 1) * diferencia;
}

console.log(terminoAritmetico(5, 3, 1));
console.log(terminoAritmetico(5, 3, 10));
console.log(terminoAritmetico(12, -2, 4));

La misma función sirve para progresiones crecientes y decrecientes.

58.6 Generar varios términos

Cuando se necesitan varios valores, un ciclo permite construir la lista de términos.

function progresionAritmetica(primero, diferencia, cantidad) {
  const terminos = [];

  for (let n = 1; n <= cantidad; n++) {
    terminos.push(primero + (n - 1) * diferencia);
  }

  return terminos;
}

console.log(progresionAritmetica(5, 3, 8));

Este patrón es frecuente al generar datos para tablas, gráficos o interfaces.

58.7 Progresión creciente

Una progresión aritmética es creciente cuando la diferencia común es positiva.

2, 6, 10, 14, ...
d = 4

Cada término es mayor que el anterior.

58.8 Progresión decreciente

Una progresión aritmética es decreciente cuando la diferencia común es negativa.

20, 15, 10, 5, 0, ...
d = -5

Cada término es menor que el anterior.

58.9 Detectar una progresión aritmética

Para verificar si una lista es aritmética, se compara la diferencia entre todos los pares consecutivos.

function esProgresionAritmetica(valores) {
  if (valores.length < 2) {
    return true;
  }

  const diferencia = valores[1] - valores[0];

  for (let i = 2; i < valores.length; i++) {
    if (valores[i] - valores[i - 1] !== diferencia) {
      return false;
    }
  }

  return true;
}

console.log(esProgresionAritmetica([4, 9, 14, 19]));
console.log(esProgresionAritmetica([4, 9, 15, 20]));

Esta validación puede utilizarse para analizar datos ingresados por un usuario.

58.10 Suma de los primeros términos

La suma de los primeros n términos de una progresión aritmética puede calcularse con una fórmula.

Sₙ = n(a₁ + aₙ) / 2

La fórmula evita recorrer todos los términos cuando solo se necesita el total.

58.11 Suma en JavaScript

Para calcular la suma, primero se obtiene el último término y luego se aplica la fórmula.

function terminoAritmetico(primero, diferencia, posicion) {
  return primero + (posicion - 1) * diferencia;
}

function sumaAritmetica(primero, diferencia, cantidad) {
  const ultimo = terminoAritmetico(primero, diferencia, cantidad);
  return cantidad * (primero + ultimo) / 2;
}

console.log(sumaAritmetica(5, 3, 4));
console.log(sumaAritmetica(10, 10, 12));

El cálculo es rápido porque no depende de crear una lista completa.

58.12 Aplicación en interfaces

Una progresión aritmética sirve para ubicar elementos con una separación constante.

function posicionesHorizontales(cantidad, inicio, separacion) {
  const posiciones = [];

  for (let i = 0; i < cantidad; i++) {
    posiciones.push(inicio + i * separacion);
  }

  return posiciones;
}

console.log(posicionesHorizontales(6, 40, 120));

Cada posición se obtiene sumando la misma separación a la anterior.

58.13 Aplicación en cuotas

Si una cuota aumenta todos los meses en una cantidad fija, los valores forman una progresión aritmética.

function cuotasConAumento(cuotaInicial, aumento, meses) {
  const cuotas = [];

  for (let mes = 1; mes <= meses; mes++) {
    cuotas.push(cuotaInicial + (mes - 1) * aumento);
  }

  return cuotas;
}

console.log(cuotasConAumento(15000, 1200, 6));

El mismo modelo puede usarse para presupuestos, salarios, tarifas o planes de pago simples.

58.14 Errores comunes

Un error frecuente es mirar solo los primeros términos y asumir que siempre existe una diferencia común.

2, 4, 6, 10
Al principio parece sumar 2, pero el último salto es 4.

Antes de usar la fórmula de progresión aritmética, hay que confirmar que la diferencia sea constante.

58.15 Conclusión

Las progresiones aritméticas representan cambios regulares por suma o resta. Son útiles para modelar incrementos constantes y distribuir valores de forma uniforme.

Fórmula clave:
aₙ = a₁ + (n - 1)d

En el próximo tema se estudiarán las progresiones geométricas, donde cada término se obtiene multiplicando por una razón constante.