Eine halbe Exponentialfunktion ist eine, die, wenn sie mit sich selbst zusammengesetzt ist, eine Exponentialfunktion ergibt. Wenn zum Beispiel, f(f(x)) = 2^x
dann f
wäre das eine halbexponentielle Funktion. In dieser Aufgabe berechnen Sie eine bestimmte halbexponentielle Funktion.
Im Einzelnen berechnen Sie die Funktion von den nicht negativen Ganzzahlen zu den nicht negativen Ganzzahlen mit den folgenden Eigenschaften:
Monoton steigend: wenn
x < y
, dannf(x) < f(y)
Mindestens die Hälfte exponentielle: Für alle
x
,f(f(x)) >= 2^x
Lexikographisch am kleinsten: Geben Sie unter allen Funktionen mit den oben genannten Eigenschaften diejenige aus, die minimiert wird
f(0)
, die bei dieser Auswahl minimiertf(1)
wirdf(2)
, und so weiter.
Die Anfangswerte dieser Funktion für Eingaben 0, 1, 2, ...
sind:
[1, 2, 3, 4, 8, 9, 10, 11, 16, 32, 64, 128, 129, 130, 131, 132, 256, 257, ...]
Sie können diese Funktion über eine der folgenden Methoden ausgeben, entweder als Funktion oder als vollständiges Programm:
Nehmen Sie
x
als Eingabe, Ausgabef(x)
.Nehmen Sie
x
als Eingang, Ausgang der erstenx
Wertef
.Endlos alles ausgeben
f
.
Wenn Sie nehmen x
und ausgeben möchten f(x)
, x
muss Null indiziert sein.
Dies ist Code Golf - kürzester Code in Bytes gewinnt. Standardlücken sind wie immer verboten.