Mari kita mendefinisikan bahasa sederhana yang beroperasi pada nilai 8-bit tunggal. Ini mendefinisikan tiga operasi bitwise (penjelasan kode mengasumsikan value
variabel 8-bit ):
!
Meniadakan bit paling signifikan (value ^= 1
)<
Membungkus shift kiri (value = value << 1 | value >> 7
)>
membungkus shift kanan (value = value >> 1 | value << 7
)
Memasukkan:
Dua angka 8-bit, a dan b . Karena mereka 8-bit, Anda dapat mengambilnya sebagai karakter.
Keluaran:
Cara terpendek untuk mendapatkan dari a ke b, dengan tiga operasi yang ditentukan di atas. Anda dapat mengembalikan string atau array karakter, atau menentukan nilai konstan dan berbeda untuk setiap operasi dan mengembalikan array dari itu (ya, Anda juga bisa mengatakan <
cara >
dan >
sarana <
), tetapi tolong jelaskan format output Anda dalam jawaban Anda.
Jika ada banyak, dengan cara yang sama panjangnya, Anda dapat menampilkan salah satu atau semuanya.
Aturan:
- Anda dapat mengirimkan program atau fungsi
- Celah standar berlaku
- Kiriman dengan byte paling sedikit di setiap bahasa menang (tidak ada jawaban akan diterima)
Solusi tanpa brute-forcing (atau setidaknya tidak hanya brute-forcing) mungkin mendapatkan upvote saya.
Kasus uji:
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 '>>>>!>!'
Berikut adalah program untuk menghasilkan beberapa lagi.