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.
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).
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:
Cada aₙ es el **término de orden n** (o término n-ésimo). La regla que produce los términos puede darse mediante:
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:
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:
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:
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:
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.
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
arr[0]).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.