Bu meydan okuma gevşek uygulanmamış esolang esinlenerek Pada .
Sıfıra sıfırlanmış 8 bitlik bir dizi düşünün. Rasgele dizeleri yazdırmak için çok minimalist bir talimat sunacağız. Her ikisi de N
bir bitin endeksi olan bir parametre alan iki komut vardır :
t N
for t oggle: Bu bit değerini değiştirirN
.p N
için p rint: bir bayt olarak yorumlar 8 bit, bit başlayarakN
ucu etrafında ve ambalaj . Bu bayta karşılık gelen karakter STDOUT'a yazdırılır.
Bir örnek verelim. Yazdırmak istiyoruz :=
. Saf olarak bunu şu şekilde elde ederiz (0 tabanlı bit indeksleri):
t 2 [0 0 1 0 0 0 0 0]
t 3 [0 0 1 1 0 0 0 0]
t 4 [0 0 1 1 1 0 0 0]
t 6 [0 0 1 1 1 0 1 0]
p 0 [0 0 1 1 1 0 1 0] == 58 == ':'
t 5 [0 0 1 1 1 1 1 0]
t 6 [0 0 1 1 1 1 0 0]
t 7 [0 0 1 1 1 1 0 1]
p 0 [0 0 1 1 1 1 0 1] == 61 == '='
Ancak bunun yerine, p
iki talimatın döngüsel özelliğini kullanabilir ve iki talimatı kaydedebiliriz:
t 2 [0 0 1 0 0 0 0 0]
t 3 [0 0 1 1 0 0 0 0]
t 4 [0 0 1 1 1 0 0 0]
t 6 [0 0 1 1 1 0 1 0]
p 0 [0 0 1 1 1 0 1 0] == 58 == ':'
t 1 [0 1 1 1 1 0 1 0]
p 7 [0 1 1 1 1 0 1 0] == [0 0 1 1 1 1 0 1] == 61 == '='
^
Yani p 7
sadece bayt değerini ilk bit yerine son bitten okumaya başlar.
Meydan okuma
Boş olmayan yazdırılabilir ASCII karakter dizisi (0x20 - 0x7E, dahil) verildiğinde, bu dizeyi yukarıdaki sistemle yazdırmak için en uygun talimatlar listesini (komut başına bir satır) oluşturun. Birden fazla optimal çözüm varsa (neredeyse her zaman böyle olacaktır), bunlardan sadece birini oluşturun.
Bitler için 0 tabanlı ve 1 tabanlı dizine ekleme arasında seçim yapabilirsiniz, ancak lütfen seçiminizi belirtin.
STDIN (veya en yakın alternatif), komut satırı bağımsız değişkeni veya işlev bağımsız değişkeni ile girdi alarak ve sonucu STDOUT (veya en yakın alternatif), işlev dönüş değeri veya işlev (çıkış) parametresi aracılığıyla çıktı alarak bir program veya işlev yazabilirsiniz. Sonucu STDOUT'a yazdırmazsanız, yine de satır satırıyla ayrılmış tek bir dize olmalıdır.
Bu kod golf, yani en kısa cevap (bayt cinsinden) kazanır.
Test Durumları
Her test durumu, giriş dizesini içeren tek bir satır, ardından en uygun talimat sayısını ve ardından olası bir çözümü takip eder.
Sen gerektiğini değil , çözümde çıkış yönerge sayısı - farklı bir talimat listesi yazdırır eğer kodunuzun doğruluğunu kontrol edebilirsiniz yüzden bu sadece burada yer almaktadır.
?
7 instructions
t 2
t 3
t 4
t 5
t 6
t 7
p 0
:=
7 instructions
t 2
t 3
t 4
t 6
p 0
t 1
p 7
0123456789
26 instructions
t 2
t 3
p 0
t 7
p 0
t 6
t 7
p 0
t 7
p 0
t 5
t 6
t 7
p 0
t 7
p 0
t 6
t 7
p 0
t 7
p 0
t 2
t 3
p 3
t 2
p 3
9876543210
28 instructions
t 2
t 3
t 4
t 7
p 0
t 7
p 0
t 0
t 7
p 5
t 4
p 5
t 0
t 5
p 0
t 7
p 0
t 5
t 6
t 7
p 0
t 7
p 0
t 6
t 7
p 0
t 7
p 0
Hello, World!
39 instructions
t 1
t 4
p 0
t 3
t 7
p 2
t 1
t 6
p 2
p 2
t 0
t 1
p 2
t 0
t 1
t 3
p 2
t 6
t 7
p 2
t 0
t 2
t 6
t 7
p 1
t 0
t 1
t 5
p 0
t 2
t 7
p 3
t 2
t 6
p 0
t 4
p 0
t 1
p 3
The quick brown fox jumps over the lazy dog.
150 instructions
t 1
t 3
t 5
p 0
t 1
t 2
p 1
t 1
t 3
t 7
p 0
t 1
t 5
t 7
p 0
t 1
t 3
t 7
p 0
t 5
p 0
t 3
t 4
t 5
p 0
t 4
t 6
p 0
t 4
p 0
t 1
t 4
t 6
t 7
p 0
t 1
t 6
p 0
t 3
p 0
t 0
t 5
p 4
t 0
t 7
p 0
t 1
p 1
t 3
t 5
t 6
t 7
p 0
t 1
t 5
t 6
p 0
t 4
t 7
p 0
t 1
t 2
p 3
t 5
t 6
t 7
p 2
t 1
t 2
t 6
p 0
t 0
p 7
t 0
t 7
p 5
t 3
t 4
t 6
t 7
p 0
t 6
t 7
p 0
t 1
t 3
t 6
t 7
p 0
t 1
t 4
t 5
t 6
t 7
p 0
t 4
p 4
t 6
p 0
t 1
t 6
p 4
t 5
t 6
t 7
p 0
t 1
t 3
t 5
p 0
t 1
p 1
t 1
t 3
t 7
p 0
t 1
t 5
t 7
p 0
t 1
t 4
t 5
p 0
t 1
p 3
t 3
t 7
p 1
t 1
t 5
p 0
t 1
t 3
t 4
t 7
p 0
t 1
t 5
p 0
t 4
t 6
t 7
p 0
t 4
p 0
t 1
t 4
t 7
p 0
Test vakaları bu CJam referans uygulamasıyla oluşturuldu .