Dado un número entero y alguna función de recuadro negro, encuentre un punto fijo en la secuencia definida por .x1 f: ℤ → ℤfxk+1 := f(xk)
Detalles
Se
xdice que un valor es un punto fijo defifx = f(x).Por ejemplo, si
f(x) := round(x/pi)y tenemos un punto de partida después conseguimos , entonces , a continuación , y, finalmente, lo que significa que la presentación debe devolver .x1 = 10x2 = f(x1) = f(10) = 3x3 = f(x2) = f(3) = 1x4 = f(x3) = f(1) = 0x5 = f(x4) = f(0) = 00- Puede suponer que la secuencia generada en realidad contiene un punto fijo.
- Puede usar el tipo nativo para enteros en lugar de
ℤ. - Puede usar cualquier idioma para el que haya valores predeterminados para la entrada de funciones de recuadro negro en la meta publicación de E / S estándar . Si no existe dicho valor predeterminado para su idioma, siéntase libre de agregar uno en el sentido de la definición de funciones de recuadro negro , y asegúrese de vincular sus propuestas en esa definición. Tampoco olvides votar sobre ellos.
Ejemplos
f(x) = floor(sqrt(abs(x)))
0 -> 0, all other numbers -> 1
f(x) = c(c(c(x))) where c(x) = x/2 if x is even; 3*x+1 otherwise
all positive numbers should result in 1,2 or 4 (Collatz conjecture)
f(x) = -42
all numbers -> -42
f(x) = 2 - x
1 -> 1
~Nƭ⁻Ç$¿, que es algo así como (pseudocódigo) for x in [0, -1, 1, -2, 2, -3, 3, -4, 4, ...]: if (x == f(x)): break; print(x); . Eso puede valer otro desafío.