Eine halbe Exponentialfunktion ist eine, die, wenn sie mit sich selbst zusammengesetzt ist, eine Exponentialfunktion ergibt. Wenn zum Beispiel, f(f(x)) = 2^xdann fwä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^xLexikographisch 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
xals Eingabe, Ausgabef(x).Nehmen Sie
xals Eingang, Ausgang der erstenxWertef.Endlos alles ausgeben
f.
Wenn Sie nehmen xund ausgeben möchten f(x), xmuss Null indiziert sein.
Dies ist Code Golf - kürzester Code in Bytes gewinnt. Standardlücken sind wie immer verboten.