Tek bir 8 bit değerinde çalışan basit bir dil tanımlayalım. Üç bitsel işlem tanımlar (kod açıklaması 8-bit value
değişken varsayılır ):
!
En az anlamlı bit (value ^= 1
)<
Sola kaydırma sarma (value = value << 1 | value >> 7
)>
kaydırma sağ kaydırma (value = value >> 1 | value << 7
)
Giriş:
İki 8 bitlik sayı, a ve b . 8 bit olduklarından, bunları alternatif olarak karakter olarak da alabilirsiniz.
Çıktı:
Yukarıda tanımlanan üç işlemle a'dan b'ye ulaşmanın en kısa yolu. Bir dize veya bir karakter dizisi döndürebilir veya her işlem için sabit, farklı bir değer tanımlayabilir ve bunlardan oluşan bir dizi döndürebilirsiniz (evet, <
araç >
ve >
araçlar da diyebilirsiniz <
), ancak lütfen yanıtınızdaki çıktı biçiminizi açıklayın.
Birden fazla, eşit derecede uzun yol varsa, bunların herhangi birini veya tümünü çıktı alabilirsiniz.
Kurallar:
- Bir program veya işlev gönderebilirsiniz
- Standart boşluklar geçerlidir
- Her dilde en az bayt içeren gönderim kazanır (cevap kabul edilmeyecektir)
Kaba zorlama olmayan çözümler (veya en azından sadece kaba zorlama değil) benim oyumu alabilir.
Test senaryoları:
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 '>>>>!>!'
İşte birkaç tane daha oluşturmak için bir program.