半指数関数は、それ自体となるとき、指数関数を与えるものです。たとえば、の場合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インデックスをゼロにする必要があります。
これはコードゴルフです-バイト単位の最短コードが勝ちます。いつものように、標準的な抜け穴は禁止されています。