半指数関数は、それ自体となるとき、指数関数を与えるものです。たとえば、の場合f(f(x)) = 2^x
、f
半指数関数になります。この課題では、特定の半指数関数を計算します。
具体的には、次のプロパティを使用して、非負の整数から非負の整数への関数を計算します。
単調増加:if
x < y
、thenf(x) < f(y)
少なくとも半指数:すべての
x
場合、f(f(x)) >= 2^x
辞書式に最小:上記の特性を有する全ての機能のうち、出力最小化する
f(0)
という選択肢最小に与えられ、f(1)
後f(2)
など。
入力に対するこの関数の初期値0, 1, 2, ...
は次のとおりです。
[1, 2, 3, 4, 8, 9, 10, 11, 16, 32, 64, 128, 129, 130, 131, 132, 256, 257, ...]
この関数は、関数または完全なプログラムとして、次のいずれかの方法で出力できます。
乗り
x
入力、出力としてf(x)
。テイク
x
出力まず、入力としてx
の値f
。すべてを無限に出力します
f
。
を取得x
して出力する場合はf(x)
、x
インデックスをゼロにする必要があります。
これはコードゴルフです-バイト単位の最短コードが勝ちます。いつものように、標準的な抜け穴は禁止されています。