目的是编写一个程序,该程序以尽可能少的字符对另一个程序(输入)进行编码。
计分
- 分数等于输出所需的不同字符数。
- 分数越低越好。
规则
- 没有目标语言且命令集有限。(没有Brainf ** k,Whitespace等)
编辑:我的意思是至少有26个有效字符,A
不会改变Brainf ** k程序的运行方式,因此您无法计算此字符。同样适用于空白。 - 在编写此问题时,目标语言必须存在。
- 您必须包含一个小说明,说明如何存档分数。
- 输入程序有效。
- 编码的程序必须是与输入语言相同的有效程序。
- 编码的程序必须执行与原始程序相同的工作。
- 您的编码器必须适用于该语言的每个有效程序。
- 包括一些样本输入和输出。
笔记
- 编码器可以用任何语言编写,而不仅限于它所针对的语言。
- 这不是代码高尔夫,而是鼓励使用可读程序。
- 伟大的目标是看用这种语言写东西需要多少个不同的字符。我不允许BF等,因为不会有挑战。
- 这是受“以尽可能少的不同字符打印一个字符串”的启发,您可以将其作为该问题的元高尔夫。
例
在Java中,您可以\uXXXX
改用其他字符。有效条目以这种方式对输入中的每个字符进行编码。得分为18。(\ 0-9a-f
)
Tcl中的代码对Java程序进行编码:
set res {}
foreach char [split [read stdin] {}] {
append res [format \\u%04x [scan $char %c]]
}
puts $res
gets
只读一行输入吗?而且您错过了u
编码器中的(但另一方面,您不需要空格,因此得分保持不变)。