Una sucesión organiza números siguiendo una regla. Detectar esa regla permite predecir valores y construir algoritmos repetitivos.
Una sucesión es una lista ordenada de números. Cada número de la lista se llama término y ocupa una posición.
En programación, las sucesiones aparecen en contadores, ciclos, animaciones, cálculos financieros y generación de datos.
Los términos suelen representarse con la letra a y un subíndice que indica la posición.
La posición permite pedir un valor específico sin escribir toda la sucesión.
La regla de formación indica cómo se obtiene cada término de la sucesión.
La regla permite calcular términos sin depender de una lista escrita manualmente.
Una sucesión finita tiene una cantidad limitada de términos. Una sucesión infinita continúa indefinidamente.
En software, incluso una sucesión matemática infinita se calcula hasta un límite definido.
Un ciclo permite construir los primeros términos de una sucesión.
function sucesionTriple(cantidad) {
const terminos = [];
for (let n = 1; n <= cantidad; n++) {
terminos.push(3 * n);
}
return terminos;
}
console.log(sucesionTriple(8));La variable n representa la posición del término.
Un patrón por suma agrega siempre la misma cantidad o cantidades reconocibles.
Este tipo de patrón se relaciona con las progresiones aritméticas.
Si la diferencia entre términos consecutivos es siempre la misma, hay un patrón lineal.
function tieneDiferenciaConstante(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(tieneDiferenciaConstante([4, 7, 10, 13]));
console.log(tieneDiferenciaConstante([2, 4, 8, 16]));Esta comprobación es útil para analizar datos simples.
Algunas sucesiones multiplican por el mismo valor para pasar de un término al siguiente.
Este tipo de patrón se relaciona con las progresiones geométricas.
Si el cociente entre términos consecutivos es constante, existe un patrón multiplicativo.
function tieneRazonConstante(valores) {
if (valores.length < 2) {
return true;
}
if (valores[0] === 0) {
return false;
}
const razon = valores[1] / valores[0];
for (let i = 2; i < valores.length; i++) {
if (valores[i - 1] === 0 || valores[i] / valores[i - 1] !== razon) {
return false;
}
}
return true;
}
console.log(tieneRazonConstante([3, 6, 12, 24]));
console.log(tieneRazonConstante([3, 6, 9, 12]));La razón constante indica que cada término escala respecto del anterior.
Una fórmula explícita calcula un término usando directamente su posición.
No hace falta conocer los términos anteriores para calcular aₙ.
La fórmula puede implementarse como una función que recibe la posición.
function terminoImpar(n) {
return 2 * n + 1;
}
for (let n = 1; n <= 6; n++) {
console.log(terminoImpar(n));
}Este enfoque es directo y eficiente cuando se conoce la regla.
Una regla recurrente calcula un término usando uno o más términos anteriores.
Para calcular un término avanzado, primero deben calcularse los anteriores.
La recurrencia puede implementarse acumulando valores dentro de un ciclo.
function sucesionPorRecurrencia(cantidad) {
const terminos = [];
let actual = 2;
for (let i = 1; i <= cantidad; i++) {
terminos.push(actual);
actual = actual + 4;
}
return terminos;
}
console.log(sucesionPorRecurrencia(7));La variable actual guarda el último término calculado.
Los patrones numéricos ayudan a generar coordenadas, tamaños, tiempos, identificadores, niveles de dificultad y secuencias de animación.
function posicionesEnFila(cantidad, inicio, separacion) {
const posiciones = [];
for (let i = 0; i < cantidad; i++) {
posiciones.push(inicio + i * separacion);
}
return posiciones;
}
console.log(posicionesEnFila(5, 20, 80));Este ejemplo genera posiciones igualmente separadas para elementos de una interfaz o un juego.
Las sucesiones permiten describir listas ordenadas de valores mediante reglas. En programación, estas reglas se transforman en ciclos, funciones y algoritmos generadores.
En el próximo tema se estudiarán las progresiones aritméticas, un caso muy importante de sucesiones con diferencia constante.