Définissons un langage simple qui fonctionne sur une seule valeur 8 bits. Il définit trois opérations au niveau du bit (l'explication du code suppose une value
variable de 8 bits ):
!
Annule le bit le moins significatif (value ^= 1
)<
Enveloppement à gauche (value = value << 1 | value >> 7
)>
habillage à droite (value = value >> 1 | value << 7
)
Contribution:
Deux nombres à 8 bits, a et b . Comme ils sont 8 bits, vous pouvez également les prendre comme caractères.
Production:
Le chemin le plus court pour passer de a à b, avec les trois opérations définies ci-dessus. Vous pouvez renvoyer une chaîne ou un tableau de caractères, ou définir une valeur constante et distincte pour chaque opération et renvoyer un tableau de ceux-ci (oui, vous pouvez également dire des <
moyens >
et des >
moyens <
), mais veuillez expliquer votre format de sortie dans votre réponse.
S'il y a plusieurs manières, également longues, vous pouvez en sortir une partie ou la totalité.
Règles:
- Vous pouvez soumettre un programme ou une fonction
- Des échappatoires standard s'appliquent
- La soumission avec le moins d'octets dans chaque langue gagne (aucune réponse ne sera acceptée)
Les solutions sans forçage brutal (ou du moins pas seulement le forçage brutal) pourraient obtenir mon vote positif.
Cas de 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 '>>>>!>!'
Voici un programme pour en générer quelques autres.