挑战
使两个程序转换小数点到和从基数94,或双向程序。
基94和任何其他大本营一样,但它使用的是ASCII字符33到126,而不是0到9和字母。不是127号,因为chr(127)是戴尔。不是32因为那是个空间。
0 - ! or empty string
1 - "
93 - ~
94 - "!
2020 - 6O
14233221 - 2-n8对于两个程序,分数将是两个程序的字节计数之和。
双向程序只是字节计数。把它想成是得分的-50%。
发布于 2020-04-04 13:32:14
发布于 2020-04-04 13:55:51
f=lambda n:n*"?"and f(n/94)+chr(n%94+33)Python3需要额外的一个字节来代替//而不是/。
g=lambda s:s>''and g(s[:-1])*94+ord(s[-1])-33h=lambda x:x*'?'and h(x/94)+chr(x%94+33)if x<''else x>''and h(x[:-1])*94+ord(x[-1])-33弗兰肯斯坦的怪物从上述两个函数中拼接而成,结果仅仅比它们的字节总数长一点点。由于该函数同时接受数字和字符串,因此必须注意不要通过对错误类型的操作而产生由非法操作引起的错误。
https://codegolf.stackexchange.com/questions/203027
复制相似问题