让我们定义一种操作单个8位值的简单语言。它定义了三个按位运算(代码说明假定为8位value
变量):
!
取反最低有效位(value ^= 1
)<
包装左移(value = value << 1 | value >> 7
)>
包装右移(value = value >> 1 | value << 7
)
输入:
两个8位数字a和b。由于它们是8位的,因此您可以选择将它们作为字符。
输出:
通过上面定义的三个操作,从a到b的最短方法。您可以返回一个字符串或字符数组,或者为每个操作定义一个常数,不同的值,然后返回这些数组(是的,您也可以说<
mean >
和>
mean <
),但是请在回答中说明您的输出格式。
如果有多种同样长的方法,则可以输出其中的任何一个或全部。
规则:
- 您可以提交程序或功能
- 适用标准漏洞
- 每种语言中字节数最少的提交将获胜(不接受任何答案)
没有暴力破解的解决方案(或者至少不仅是暴力破解)可能会让我大吃一惊。
测试用例:
12, 13 => '!'
1, 2 => '<'
254, 253 => '<'
5, 5 => ''
98, 226 -> '<!>'
64, 154 -> '!>!>>>!>'
177, 164 -> '!>>!>>>!'
109, 11 -> '>>!>!>>'
126, 92 -> '!>!>!>!<' or '!>!>>!<!'
26, 85 -> '<!<<!<!<' or '<!<<!<!>' or '<!<<<!>!'
123, 241 -> '!>!<<!' or '>!<!<!'
236, 50 -> '<<!<!>' or '<<<!>!'
59, 246 -> '<<!>'
132, 95 -> '!<<!<!<!'
74, 53 -> '!>>>!>!'
171, 127 -> '<<!<<!<'
109, 141 -> '!>>>'
185, 92 -> '!>'
166, 201 -> '!<!>>>' or '<!>!>>'
77, 155 -> '<!'
124, 181 -> '!<<<<!>>' or '!>>>>!>>'
108, 85 -> '!<<<!<!<!<' or '!<<<!<!<!>' or '!<<<!<<!>!' or '!>>>!>!>!<' or '!>>>!>!>!>' or '!>>>!>>!<!'
185, 144 -> '<!<<!<!'
70, 179 -> '<<<!<!>' or '<<<<!>!' or '>>>>!>!'
这是一个生成更多程序的程序。