33. Sucesiones y progresiones discretas

Una sucesión es una lista ordenada de números generada por una regla. Las progresiones aritméticas y geométricas son los patrones más importantes: el primero suma una cantidad fija en cada paso y el segundo multiplica por una razón constante.

33.1 Introducción

En el tema anterior vimos funciones recursivas que generan valores paso a paso. Esa idea se conecta directamente con las **sucesiones**: listas ordenadas de números donde cada término ocupa una posición natural n = 1, 2, 3, …

Muchas sucesiones que aparecen en informática y matemáticas discretas siguen patrones regulares. Los dos más estudiados son las **progresiones aritméticas** (incrementos constantes) y las **progresiones geométricas** (multiplicaciones constantes).

33.2 Definición de Sucesión

Una **sucesión** es una función cuyo dominio es un subconjunto de los enteros positivos (o de los naturales incluyendo el cero) y cuyo codominio es un conjunto numérico. Se denota:

{ aₙ }ₙ≥₁ o bien (a₁, a₂, a₃, a₄, …)

Cada aₙ es el **término de orden n** (o término n-ésimo). La regla que produce los términos puede darse mediante:

  • Fórmula explícita: aₙ = f(n), calcula cualquier término directamente.
  • Definición recursiva: a₁ dado y aₙ en función de aₙ₋₁ (como en el tema 32).
  • Lista finita: enumeración directa de valores en un arreglo.

33.3 Progresión Aritmética

Una sucesión es **progresión aritmética** si la diferencia entre términos consecutivos es siempre la misma. Esa diferencia constante se llama **diferencia común** y se denota d:

aₙ − aₙ₋₁ = d para todo n > 1 Término general: aₙ = a₁ + (n − 1) · d

Ejemplo: Si a₁ = 3 y d = 2, la sucesión es 3, 5, 7, 9, 11, …

La suma de los primeros n términos de una progresión aritmética tiene fórmula cerrada:

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

33.4 Progresión Geométrica

Una sucesión es **progresión geométrica** si el cociente entre términos consecutivos es siempre el mismo. Ese valor constante se llama **razón** y se denota r:

aₙ / aₙ₋₁ = r para todo n > 1 (con aₙ₋₁ ≠ 0) Término general: aₙ = a₁ · rⁿ⁻¹

Ejemplo: Si a₁ = 2 y r = 3, la sucesión es 2, 6, 18, 54, 162, …

La suma de los primeros n términos (con r ≠ 1) es:

Sₙ = a₁ · (1 − rⁿ) / (1 − r)

33.5 Simulador: Visualizador de Términos

El simulador muestra los primeros términos de una progresión como barras. Observa cómo en la progresión aritmética las barras crecen (o decrecen) en saltos de igual tamaño, mientras que en la geométrica el crecimiento es multiplicativo. Las flechas entre barras indican la diferencia d o la razón r.

Gráfico de Sucesiones Progresión Aritmética
Sucesión aritmética: a₁ = 3, d = 2 → términos 3, 5, 7, 9, 11.

33.6 Sucesiones en Programación

En JavaScript, una sucesión finita se representa naturalmente como un arreglo. Podemos generar términos con un bucle aplicando la regla aritmética o geométrica, o calcular un término cualquiera con la fórmula explícita.

// Generar progresión aritmética: a_n = a1 + (n-1)*d
function progresionAritmetica(a1, d, cantidad) {
  const sucesion = [];
  for (let n = 1; n <= cantidad; n++) {
    sucesion.push(a1 + (n - 1) * d);
  }
  return sucesion;
}

// Generar progresión geométrica: a_n = a1 * r^(n-1)
function progresionGeometrica(a1, r, cantidad) {
  const sucesion = [];
  for (let n = 1; n <= cantidad; n++) {
    sucesion.push(a1 * Math.pow(r, n - 1));
  }
  return sucesion;
}

// Suma de los primeros n términos aritméticos
function sumaAritmetica(a1, d, n) {
  const an = a1 + (n - 1) * d;
  return (n * (a1 + an)) / 2;
}

console.log("Aritmética:", progresionAritmetica(3, 2, 5));
// Aritmética: [3, 5, 7, 9, 11]

console.log("Geométrica:", progresionGeometrica(2, 3, 5));
// Geométrica: [2, 6, 18, 54, 162]

console.log("Suma 1+2+3+4+5 =", sumaAritmetica(1, 1, 5));
// Suma 1+2+3+4+5 = 15

33.7 Errores Comunes

  • Confundir diferencia con razón: En aritmética se **suma** d; en geométrica se **multiplica** por r. La sucesión 2, 4, 8, 16 es geométrica (r = 2), no aritmética.
  • Usar n en lugar de (n − 1): En la fórmula aₙ = a₁ + (n − 1)d, el primer término corresponde a n = 1, por eso aparece (n − 1) y no n.
  • Olvidar el caso r = 1 en sumas geométricas: Si r = 1, todos los términos son iguales a a₁ y Sₙ = n · a₁. La fórmula con denominador (1 − r) no aplica.
  • Mezclar índices de arreglos con orden del término: En programación, el primer término a₁ suele almacenarse en la posición 0 del arreglo (arr[0]).

33.8 Qué debes recordar de este tema

  • Una sucesión es una lista ordenada de números indexada por enteros positivos.
  • Progresión aritmética: diferencia constante d; fórmula aₙ = a₁ + (n − 1)d.
  • Progresión geométrica: razón constante r; fórmula aₙ = a₁ · rⁿ⁻¹.
  • Las sucesiones pueden definirse de forma explícita o recursiva (conexión con el tema 32).
  • En programación se generan con bucles o se almacenan como arreglos.

33.9 Conclusión

Las progresiones aritméticas y geométricas son patrones fundamentales para modelar crecimiento lineal y exponencial discreto: intereses compuestos, capacidad de redes, análisis de algoritmos o conteo de casos en bucles anidados.

No todas las sucesiones siguen estas reglas simples. En el próximo tema estudiaremos las **relaciones de recurrencia**, que generalizan la idea recursiva para describir sucesiones más complejas mediante ecuaciones que relacionan cada término con varios anteriores.