Definiamo un linguaggio semplice che opera su un singolo valore a 8 bit. Definisce tre operazioni bit a bit (la spiegazione del codice presuppone una value
variabile a 8 bit ):
!
Annulla il bit meno significativo (value ^= 1
)<
Spostamento con spostamento a sinistra (value = value << 1 | value >> 7
)>
spostamento a destra (value = value >> 1 | value << 7
)
Ingresso:
Due numeri a 8 bit, a e b . Dato che sono a 8 bit, puoi alternativamente prenderli come personaggi.
Produzione:
Il modo più breve per andare da a a b, con le tre operazioni sopra definite. È possibile restituire una stringa o una matrice di caratteri o definire valori costanti e distinti per ciascuna operazione e restituire una matrice di quelli (sì, si potrebbe anche dire <
mezzi >
e >
mezzi <
), ma si prega di spiegare il formato di output nella risposta.
Se ci sono più modi, ugualmente lunghi, è possibile emetterne uno o tutti.
Regole:
- È possibile inviare un programma o una funzione
- Si applicano scappatoie standard
- Vince l'invio con il minor numero di byte in ciascuna lingua (nessuna risposta verrà accettata)
Le soluzioni senza la forza bruta (o almeno non solo la forza bruta) potrebbero ottenere il mio voto.
Casi test:
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 '>>>>!>!'
Ecco un programma per generarne altri.