半指数函数是与自身组合时给出指数函数的函数。例如,如果是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
作为输入,输出f
的第一个x
值。f
。如果要接受x
和output f(x)
,则x
必须为零索引。
这是代码高尔夫-最短的字节获胜代码。标准漏洞和往常一样被禁止。
发布于 2017-12-07 05:22:55
发布于 2017-12-07 04:43:44
def f(x):
a=range(1,2**x)
for i in range(1,x):a[i]=max(a[i],a[i-1]+1);a[a[i]]=max(a[a[i]],2**i)
return a[:x]
这是对user202729S回答的一个重大修改。我本想把这个改进作为评论发布,但是答案被删除了,所以评论被禁用了。
https://codegolf.stackexchange.com/questions/150060
复制相似问题