你的任务是制造一个双向压缩机。它以一个字节列表作为输入,并返回一个字节列表作为输出。它具有这个属性,而不是每次迭代两次就返回原始输入。
换句话说,如果f是您的程序作为一个函数,那么f(f(x))=x适用于所有x。
现在,由于这是一个“压缩机”,它实际上应该尝试压缩它的输入。当然,它不能压缩每个输入。然而,它应该能够压缩您的程序的源代码。也就是说,如果s是程序的源代码,那么len(f(s))<len(s)。
综上所述,您的程序充当一个函数,它接受一个字节列表作为输入,并输出一个字节列表作为输出。让我们调用您的程序f,它是源代码s。您的程序必须同时满足两个方面:
f(f(x)) = x for all xlen(f(s)) < len(s)请记住,空列表是一个列表,因此您的代码应该能够处理它。
正常的quine规则适用,所以不允许内省(打开包含源代码的文件,等等)。
最短代码获胜!
发布于 2022-01-18 14:52:39
-1感谢@thejonymyster
-7感谢@Arnauld
-4多亏@l4m2
x=>x.replace(/-2|1/,z=>~z)交换-2和1的第一个实例,在程序压缩自身时保存一个字节。将字节列表作为输入,作为字符串。
这就是现在社区的努力:
发布于 2022-01-19 10:38:00
发布于 2022-01-19 06:06:39
https://codegolf.stackexchange.com/questions/241259
复制相似问题