Función: ÓrbitaVolver

Descripción

Itera una expresión sobre si misma a partir de un valor inicial y un nº de iteraciones como iter, pero devuelve un vector con todos los resultados intermedios (órbita)

Cadena de entrada

orbit

Cadena de salida

orbit

Uso

iter(<expresión_recurrencia>,<varname>,<valor_inicial>,<iteraciones>[,<parar_punto_fijo>[,<varname_iter>]])

Parámetros
# Parámetro Descripción Valor por defecto
1 expresión_recurrencia Expresión a iterar, que depende del valor anterior y opcionalmente del índice de iteración
2 varname Variable que toma el valor anterior (o el inicial en la primera iteración)
3 valor_inicial Valor en la iteración 0
4 iteraciones Número de iteraciones máximas antes de devolver el resultado
5 parar_punto_fijo Booleano que indica si debe finalizar la iteración al repetirse el último valor en la nueva iteración (punto fijo) falso
6 varname_iter Variable de iteración, toma los valores 1,2,…,<iteraciones>. En la iteración 0, no toma valor

Ejemplos

orbit(3x+2,x,1,4)

VectorEvaluado: [1,5,17,53,161]

generar nºs entre 1 y 10 hasta obtener dos valores iguales seguidos:

orbit(randint(1,10),_,1,1e6,true)

VectorEvaluado: [1,10,2,9,2,4,9,5,5]

orbit(i*n,n,1,10,false,i)

VectorEvaluado: [1,1,2,6,24,120,720,5040,40320,362880,3628800]

sucesión de la conjetura de Collatz para 12 usando 10 iteraciones:

orbit(if(par(n),n/2,3n+1),n,12,10)

VectorEvaluado: [12,6,3,10,5,16,8,4,2,1,4]

Véase también…

iterar, reduce