用您选择的编程语言编写95个程序,每个程序输出95个可打印ASCII字符中的 一个,而该字符不会出现在程序中的任何位置。
例如,如果您的语言是Python,则输出字符的程序P
可能是
print(chr(80))
因为它P
具有ASCII代码80。此程序有效,因为它P
从未出现在源代码中。但是,对于输出小写字母的程序,p
类似
print(chr(112))
将是无效的,因为虽然它确实打印了p
,但p
仍存在于代码中。一个有效的程序可能是
exec(chr(112)+'rint(chr(112))')
可以打印p
但不包含p
。
您的目标是使95个程序中的每一个都尽可能短。您的分数是所有程序的字符长度之和。
如果由于某种原因您无法为某些字符编写有效的程序,则可以将这些字符标记为“ Did Not Program”或DNP,并完全省略它们的程序。这样,语法严格的语言就可以竞争。
获奖的答案是,有得分最低的答案中的一组拥有最少的DNP的答案。
规则
您所有程序的源代码只能包含可打印的ASCII加上制表符和换行符,所有这些都被视为一个字符。(由于采用了不同的编码,因此很容易省略不存在的字符!)
- 注意:此规则似乎是必需的,但是有许多语言使用不同的编码,我敢肯定看到它们的答案会很酷。因此,您可以打破这条规则,可以使用任何想要的字符,但是您的答案将变得不具有竞争力,因此无法取胜。
根据您语言的标准约定,程序必须是实际的完整程序。不允许使用功能和REPL代码段。
每个程序的输出应转到stdout或您的语言可接受的替代方案。
程序不应提示或要求输入。(如果提示输入是您的语言固有的,那么可以。)
程序应具有确定性,运行时有限且独立。例如,一个文件是否在与其他程序分开的文件夹中运行没关系。
程序的输出应该是与之对应的可精确打印的ASCII字符,可以选择在其后跟一个单行换行符,仅此而已。
确保在答案中包括所有95个(理想)程序的信息,以及分数和任何DNP。你不必列出所有遵循像一个简单的模式程序“ ,...”但要确保你确信他们都将工作,你的分数是正确添加。print(chr(80))
print(chr(81))
print(chr(82))
作为参考,以下是程序必须输出的95个可打印ASCII:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
0