Este artículo necesita citas adicionales para su verificación . ( julio de 2024 ) |
La iteración es la repetición de un proceso con el fin de generar una secuencia (posiblemente ilimitada) de resultados. Cada repetición del proceso es una única iteración y el resultado de cada iteración es el punto de partida de la siguiente iteración.
En matemáticas y ciencias de la computación , la iteración (junto con la técnica relacionada de recursión ) es un elemento estándar de los algoritmos .
En matemáticas, la iteración puede referirse al proceso de iterar una función , es decir, aplicar una función repetidamente, utilizando la salida de una iteración como entrada para la siguiente. La iteración de funciones aparentemente simples puede producir comportamientos complejos y problemas difíciles; para ejemplos, véase la conjetura de Collatz y las secuencias de malabaristas .
Otro uso de la iteración en matemáticas es en los métodos iterativos que se utilizan para producir soluciones numéricas aproximadas a ciertos problemas matemáticos. El método de Newton es un ejemplo de un método iterativo. El cálculo manual de la raíz cuadrada de un número es un uso común y un ejemplo bien conocido.
En informática, la iteración es la técnica que permite marcar un bloque de enunciados dentro de un programa informático para que se repitan un número determinado de veces. Se dice que ese bloque de enunciados se itera ; un científico informático también podría referirse a ese bloque de enunciados como una "iteración".
Los bucles constituyen las construcciones de lenguaje más comunes para realizar iteraciones. El siguiente pseudocódigo "itera" tres veces la línea de código entre el inicio y el fin a través de un bucle for y utiliza los valores de i como incrementos.
a := 0 para i := 1 a 3 hacer { repetir tres veces } comenzar a := a + i ; { sumar el valor actual de i a a } fin ; imprimir ( a ) ; { se imprime el número 6 (0 + 1; 1 + 2; 3 + 3) }
Es permisible, y a menudo necesario, utilizar valores de otras partes del programa fuera del bloque de declaraciones entre corchetes, para realizar la función deseada.
Los iteradores constituyen construcciones lingüísticas alternativas a los bucles, que garantizan iteraciones consistentes sobre estructuras de datos específicas. A la larga, pueden ahorrar tiempo y esfuerzo en intentos de codificación posteriores. En particular, un iterador permite repetir el mismo tipo de operación en cada nodo de dicha estructura de datos, a menudo en un orden predefinido.
Los iteradores son construcciones de lenguaje puramente funcionales, que aceptan o rechazan datos durante las iteraciones.
Las recursiones y las iteraciones tienen definiciones algorítmicas diferentes, aunque pueden generar efectos o resultados idénticos. La principal diferencia es que la recursión se puede emplear como solución sin tener conocimiento previo de cuántas veces se deberá repetir la acción, mientras que una iteración exitosa requiere ese conocimiento previo.
Algunos tipos de lenguajes de programación, conocidos como lenguajes de programación funcionales , están diseñados de tal manera que no establecen un bloque de sentencias para su repetición explícita, como ocurre con el bucle for . En su lugar, esos lenguajes de programación utilizan exclusivamente la recursión . En lugar de llamar a un bloque de código para que se repita un número predefinido de veces, el bloque de código que se ejecuta "divide" el trabajo que se debe realizar en una serie de partes separadas, después de lo cual el bloque de código se ejecuta a sí mismo en cada parte individual. Cada parte del trabajo se dividirá repetidamente hasta que la "cantidad" de trabajo sea lo más pequeña posible, momento en el que el algoritmo realizará ese trabajo muy rápidamente. Luego, el algoritmo "invierte" y vuelve a ensamblar las partes en un todo completo.
El ejemplo clásico de recursión se encuentra en los algoritmos de ordenación de listas, como el ordenamiento por combinación . El algoritmo recursivo de ordenamiento por combinación primero dividirá repetidamente la lista en pares consecutivos; luego se ordenará cada par, luego cada par consecutivo de pares, y así sucesivamente hasta que los elementos de la lista estén en el orden deseado.
El código a continuación es un ejemplo de un algoritmo recursivo en el lenguaje de programación Scheme que generará el mismo resultado que el pseudocódigo del encabezado anterior.
( iterar (( i 1 ) ( a 0 )) ( si ( <= i 3 ) ( iterar ( + i 1 ) ( + a i )) ( mostrar a ) ))
En algunas escuelas de pedagogía , las iteraciones se utilizan para describir el proceso de enseñar o guiar a los estudiantes a repetir experimentos, evaluaciones o proyectos, hasta que se obtengan resultados más precisos o el estudiante haya dominado la habilidad técnica. Esta idea se encuentra en el viejo adagio “La práctica hace al maestro”. En particular, “iterativo” se define como el “proceso de aprendizaje y desarrollo que implica una indagación cíclica, lo que permite múltiples oportunidades para que las personas revisen las ideas y reflexionen críticamente sobre sus implicaciones”. [1]
A diferencia de la informática y las matemáticas, las iteraciones educativas no están predeterminadas; en cambio, la tarea se repite hasta que se logra el éxito según algunos criterios externos (a menudo una prueba).