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…