7 , 10 bayt, 27 karakter
115160723426754314105574033
Çevrimiçi deneyin!
Bu programın disk üzerinde paketlenmiş temsili ( xxd
format):
00000000: 269c 3a71 6f63 308b 7c0d &.:qoc0.|.
açıklama
Bu sayı dizisini daha önce, sayıları düzenli aralıklarla yazdırmak ve çok eski bir dil kullanmayı gerektirerek ilginç hale getirmek için Otomatik Tasarruf Dünyasında gördük. Daha yeni diller, bu zorluğu ilginç kılan kendi bükülmelerine sahip olabilir.(Evet, bu paragraf ve aslında bu cevabı yazmaya başlamamın nedeni, ilgili tüm zorlukların kenar çubuğunda birlikte görünmesini sağlamanın etkili bir yoludur; normalde insanlar yorum kullanarak bunu yaparlar, ancak yeterli temsilcim yok .)
Unutulmaması gereken ilk şey, 7'nin tamamen rakamlardan oluşmasıdır, bu yüzden burada bonusların gitmesi olası değildir (programı bir sekizli dizisi olarak görüyorsanız, hiçbiri orijinal sayıların ASCII temsillerine karşılık gelmez) , bu nedenle bonusu talep edebilirsiniz). Bir sonraki nokta, 7'nin belirli bir veri parçası üretmesi muhtemel komut dizisini yeniden oluşturma komutlarına sahip olmasıdır; Kayıp sayıları yorumlayabilir miyiz4815162342
7 programın bir bölümü olarak ?
Cevap "tam olarak değil". En sorunlu kısmı ikinci sayıdır 8
. 7 program sekizli olarak yazılmıştır; 8 gibi bir sayı yoktur. Bu nedenle dizenin en başından farklı yazdırılması gerekecektir.
Bu nedenle programın temeli 7 "Merhaba dünya" programına dayanmaktadır:
5431410557403
543141055 string literal
7 separate data from code
4 rearrange stack: {program's source}, empty element, {literal}
0 escape {the literal}, appending it to {the empty element}
3 output {the escaped literal}, pop {the program's source}
kaçan değişmez alan aşağıdaki gibi yorumlanan alana özgü bir dilde olmalıdır:
5 output format: US-TTY using pairs of digits in the string
43 select character set: digits and common symbols
14 "4"
10 "8"
55 forget the set output format
Bundan sonra 3
, kalan yığın elemanını çıktılayan (ve kalan yığın yığınından dolayı çıkış yapan) bir ekstra gelir . Bu öğe programın başında belirtilir ve eşleşmeyen 6
(bir kapanış parantezi gibi çalışır) önlemek için doğrudan veri olarak yazmak yerine kodu kullanarak oluştururuz. ( 7
Programın başında, burada alakalı olan iki zımni karakter bulunduğunu unutmayın ):
{77}115160723426
7 empty stack element
7 11516 append "1151"
0 append "6"
723246 append "2324"
Bu, aşağıdaki değişmez değeri üretir:
115162324
1 set output format: literally as octal
15162324 "15162324"
yazdırılır.