Половинной экспоненциальная функция является один , который , когда в составе с собой дает экспоненциальную функцию. Например, если f(f(x)) = 2^x
, то f
будет полуэкспоненциальной функцией. В этом задании вы вычислите определенную половину экспоненциальной функции.
В частности, вы будете вычислять функцию от неотрицательных целых чисел до неотрицательных целых чисел со следующими свойствами:
Монотонно возрастающий: если
x < y
, тоf(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
должен быть индексирован ноль.
Это код гольфа - выигрывает самый короткий код в байтах. Стандартные лазейки , как всегда, запрещены.