7 , 23 karakter, 9 bayt
54340045141332401057403
Çevrimiçi deneyin!
Bu tamamen rakamlardan oluşan bir dilde oldukça zor bir iştir, ama ben başardım…
Bu 7 kodlamada sadece 9 bayttır. (Açıkçası, 8, bayttır (23 × ⅜ - ¼ çünkü son iki sondaki 1 bit atlanabilir), ancak ilk kez, PPCG'nin tüm baytları toplama gereksinimi aslında bir avantajdır çünkü Ekstra son 1 bit gerekli ve bu nedenle soru tarafından yasaklanmadı.) Geri dönüşümlü bir altıgen döküm:
00000000: b1c0 2530 b6a0 22f8 1f ..%0.."..
Bu programı 7'de yazmanın ana zorluğu, 10 baytın altına golf oynamaktı (kullanmadan 7 yazmak 0veya 1oldukça zor.) Bu standart "Merhaba dünya" programı ile aynı yapıyı kullanıyor:
5434004514133240105 7 403
5434004514133240105 komutları 0-5 veri alanlarına değişmezleri ekle
7 yeni bir veri alanı bölümü başlat
403 veri alanına başka bir hazır bilgi eklendi
{implicit: son bölümü komut olarak değerlendirin}
4 takas, 1. ve 2. bölümleri 6 arasında boş bir bölüm ile
1. bölüm 3 çıktısını oluşturacak komutları yeniden yapılandırır
(+ umurumuzda olmayan diğer efektler)
Başka bir deyişle, veri alanının iki bölümünü oluşturarak başlarız; Her biri bir dizi emir iterek iki hazır bilgimiz var. İkinci bölüm (yığın tarzı itilirler, bu nedenle ilk basma = son pop) komutların oldukça rasgele bir dizisidir ancak komut dizisi kullanılarak itilir 5434004514133240105(bu nedenle veri dizisini oluşturur 5434664574733246765; metin içinde 7'yi tartışırken normalde normal yazı tipini kullanırım) değişmezleri iten bir komut için ve buna karşılık gelen değişmez için kalın. İlk bölüm komut dizisi kullanılarak 403üretiliyor 463. Daha sonra ilk bölüm programa geri kopyalanır (örtük bir davranış 7).
463Şimdi (kalın olmayan) sadece değişmezleri itmek komutları yerine, hemen bir şeyler yapmak (kalın) komutları oluşur. 4"string literal" kelimesini ilk bölüme getirmek için bölümleri yeniden düzenler. Ardından 0, 7'nin en çok bilinen işlemi yapar: veri alanının bir bölümünü almak ve onu yaratması en muhtemel komut sırasını yeniden oluşturmak. Orijinal komut dizisi tüm idi durumda 0- 5(o komutlar tamamen verileri itmek ve böylece yaptıklarını bariz kanıt bırakın, şaşırtıcı olmayan) ve bu yüzden orijinal diziyi olsun, bu% 100 doğru olduğunu 5434004514133240105geri. Sonunda, 3yazdırır.
Bu yüzden burada bakılacak kalan şey dizginin kodlamasıdır. Bunun kendi etki alanına özgü dili var:
5434004514133240105
5 change encoding: 6 bits per character
43 select character set: digits and common symbols
40 '9'
04 space
51 select character set: uppercase letters
4133240105 'B' 'Y' 'T' 'E' 'S'
("Rakamlar ve genel semboller" karakter setinde "karakter karakteri seç: küçük harf" yoktur - önce farklı bir karakter kümesinden geçmelisiniz - bu nedenle etkili olanın altına sığacak kadar kısa bir golf yapmak için büyük harf kullanmam gerekiyordu. -bayt sınırı.)