Vamos definir uma linguagem simples que opere em um único valor de 8 bits. Ele define três operações bit a bit (a explicação do código assume uma value
variável de 8 bits ):
!
Negue o bit menos significativo (value ^= 1
)<
Empacotando o deslocamento para a esquerda (value = value << 1 | value >> 7
)>
quebra automática à direita (value = value >> 1 | value << 7
)
Entrada:
Dois números de 8 bits, a e b . Como são de 8 bits, você pode levá-los como caracteres.
Resultado:
A maneira mais curta de ir de a para b, com as três operações definidas acima. Você pode retornar uma string ou uma matriz de caracteres, ou definir valores constantes e distintos para cada operação e retornar uma matriz desses (sim, você também pode dizer <
meios >
e >
meios <
), mas por favor, explique seu formato de saída na sua resposta.
Se houver várias maneiras igualmente longas, você poderá gerar uma ou todas elas.
Regras:
- Você pode enviar um programa ou função
- Aplicam-se brechas padrão
- A submissão com menos bytes em cada idioma vence (nenhuma resposta será aceita)
Soluções sem força bruta (ou pelo menos não apenas força bruta) podem receber meu voto positivo.
Casos de teste:
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 '>>>>!>!'
Aqui está um programa para gerar mais alguns.