Lua 5.3,108097107033101字节,得分28 27
load(([[REPLACE]]):gsub([[[<>]-{()}]],[[%1]]):gsub([[...]],([[]]).char))()
在这里,REPLACE
由长度为108097107033034的自由字符字符串代替。该字符串通过放置{}
在某些关键位置来对数据进行编码。第一个gsub
将通过{}
s 的索引替换字符串(通过空捕获组()
)。第二个gsub
将结果字符串分成3位数的块,并用其ASCII表示替换每个块。
请注意,Lua中原始字符串的语法(基本上)[[string contents]]
是,对于降低分数非常有用。
我正在生成的(未转义的)字符串是print"Surprise!\nHappy Birthday, Brain-Flak!"
。将每个字符替换为其3位十进制ASCII码将得到112114105110116034083117114112114105115101033092110072097112112121032066105114116104100097121044032066114097105110045070108097107033034
。我使用的代码只能生成自然数递增的序列(至少相隔2个),这些序列不是以零开头的。因此,该数字被分成11, 2114, 105110, 1160340, 83117114, 112114105, 1151010330, 9211007209, 71121121210, 320661051141, 1610410009712, 10440320661140, 97105110045070, 108097107033034
。(最后一个数字正好是REPLACE
值的长度,因为该模式的最后一个匹配将给出final的索引}
,并指出Lua-indices从1开始。如果最后一个数字为奇数,则该模式和字符串将具有稍作修改,尽管并不难。)
我实际上并没有生成并运行该程序,因为它太大(尽管理论上它可以在64位计算机上运行,但它不适合我的硬盘驱动器)。
作为概念验证,这是一个3
使用相同原理进行打印的小程序:
p=print
load(([[<<><><><>{}<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>{}<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>{}><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>{}]]):gsub([[[<>]-{()}]],[[%1]]):gsub([[...]],([[]]).char))()
这将通过split p"3"
通过数字生成代码字符串。112034051034
11, 203, 405, 1034