Половинной экспоненциальная функция является один , который , когда в составе с собой дает экспоненциальную функцию. Например, если 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должен быть индексирован ноль.
Это код гольфа - выигрывает самый короткий код в байтах. Стандартные лазейки , как всегда, запрещены.