Una función semi-exponencial es aquella que cuando se compone consigo misma da una función exponencial. Por ejemplo, si f(f(x)) = 2^x, entonces fsería una función medio exponencial. En este desafío, calcularás una función semiexponencial específica.
Específicamente, calculará la función desde los enteros no negativos hasta los enteros no negativos con las siguientes propiedades:
Monotónicamente creciente: si
x < y, entoncesf(x) < f(y)Al menos medio exponencial: para todos
x,f(f(x)) >= 2^xLexicográficamente más pequeña: Entre todas las funciones con las propiedades anteriores, la salida de la que reduce al mínimo
f(0), lo que, dado que reduce al mínimo la elecciónf(1), a continuaciónf(2), y así sucesivamente.
Los valores iniciales de esta función, para las entradas 0, 1, 2, ...son:
[1, 2, 3, 4, 8, 9, 10, 11, 16, 32, 64, 128, 129, 130, 131, 132, 256, 257, ...]
Puede generar esta función a través de cualquiera de los siguientes métodos, ya sea como función o como programa completo:
Tomar
xcomo entrada, salidaf(x).Tomar
xcomo entrada, generar los primerosxvalores def.Infinitamente salida de todo
f.
Si desea tomar xy generar f(x), xdebe estar indexado a cero.
Este es el código de golf: el código más corto en bytes gana. Las lagunas estándar están prohibidas, como siempre.