Definamos un lenguaje simple que opera en un solo valor de 8 bits. Define tres operaciones bit a bit (la explicación del código supone una value
variable de 8 bits ):
!
Negar el bit menos significativo (value ^= 1
)<
Ajuste de desplazamiento a la izquierda (value = value << 1 | value >> 7
)>
ajuste de desplazamiento a la derecha (value = value >> 1 | value << 7
)
Entrada:
Dos números de 8 bits, a y b . Como son de 8 bits, también puedes tomarlos como personajes.
Salida:
La forma más corta de ir de a a b, con las tres operaciones definidas anteriormente. Puede devolver una cadena o una matriz de caracteres, o definir valores constantes y distintos para cada operación y devolver una matriz de esos (sí, también podría decir <
medias >
y >
medias <
), pero explique su formato de salida en su respuesta.
Si hay varias formas, igualmente largas, puede generar una o todas ellas.
Reglas:
- Puedes enviar un programa o función
- Se aplican lagunas estándar
- El envío con la menor cantidad de bytes en cada idioma gana (no se aceptará ninguna respuesta)
Las soluciones sin fuerza bruta (o al menos no solo fuerza bruta) podrían obtener mi voto positivo.
Casos de prueba:
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 '>>>>!>!'
Aquí hay un programa para generar algunos más.
fuente
f=(a,b,[c,d,...e]=[a,''])=>c-b?f(a,b,[...e,c^1,d+1,c/2|c%2<<7,d+2,c%128*2|c>>7,d+0]):d
Jalea , 32 bytes
Pruébalo en línea!
< :
['ṙ', '1']
> :
['ṙ', '-']
! :
['¬', '8', '¦']
Nota: Esta es una función, es por eso que el pie de página está ahí.
Fuerza bruta. :(
fuente
Python 2 , 111 bytes
Pruébalo en línea!
fuente
exit
para producir resultados.JavaScript (ES6), 105 bytes
Toma los 2 bytes en la sintaxis de curry
(a)(b)
.Devuelve una cadena con:
0
=!
1
=>
2
=<
o una matriz vacía si a es igual a b .
Pruébalo en línea! (con códigos traducidos de nuevo a
!<>
)fuente
C (gcc) ,
201199198196193 bytesa/2+a*128
al golf(a+2*a*128)/2
aa*257/2
.a*2+a/128
a(a*2*128+a)/128
a(257*a)/128
a257*a>>7
.doscinco bytes gracias a ceilingcat , jugar al golf el tipo de retorno.C (gcc) , 193 bytes
Pruébalo en línea!
fuente