Menulis program yang sesingkat mungkin (diukur dengan byte-count), tidak mengambil input, tidak berisi komentar, dan mengeluarkan string karakter / urutan, sehingga program gabungan + output persis 95 karakter panjangnya dan berisi setiap karakter ASCII yang dapat dicetak dicetak tepat sekali , yaitu program + output adalah permutasi dari 95 karakter dengan kode ASCII 32-126:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Dalam hal seri, pemenangnya adalah entri yang output + program (95 karakter) + paling dekat dengan string di atas, yang diukur dengan jarak edit Levenshtein (yaitu jumlah penghapusan karakter tunggal, penyisipan, atau diperlukan penggantian untuk memasukkannya ke dalam urutan ASCII).
echo $0
didiskualifikasi.Jawaban:
GolfScript, 14 karakter
Keluaran :
sumber
),
- Wow. Saya suka itu.Perl, 89 karakter
Ini adalah yang terbaik yang bisa saya lakukan sejauh ini:
Bagi mereka yang tidak fasih dalam Perl minutae, dua argumen untuk
print
pernyataan tersebut dapat diterjemahkan sebagai~(-($=)) . (73 * 2)
dantr///
.Program ini menghasilkan 6 karakter:
Sayangnya setiap iterasi konstruk tunggal yang dapat saya pikirkan di Perl (
for
,while
,until
,map
,grep
) saham setidaknya satu karakter denganprint
. Jika baris baru diizinkan muncul di output, maka saya bisa menggunakan Perl 5.010 untuk mencari solusi 87-karakter:sumber
$=
adalah jumlah garis horizontal pada perangkat keluaran saat ini. Secara default 60.~-$=
adalah inversi bitwise dari komplemen negatif kedua dari 60, yang kebetulan59
.73*2
adalah 146..
dan,
lakukan apa yang Anda harapkan dari mereka.y[]{}
adalah cara lain untuk mengatakantr///
, yang merupakan operator transliterate. Dibutuhkan$_
dan tidak melakukan apa-apa, karena Anda tidak memberikan karakter apa pun untuk diganti. Ini mengembalikan jumlah karakter yang diganti, yaitu0
. Jadi kita memiliki~-$= . 73*2 , y[]{}
=59 . 146 , 0
= '591460`.PHP 67 byte
Keluaran:
Sepertinya harus ada solusi 65 byte, menghasilkan 30 karakter bukan hanya 28, tapi saya tidak bisa mendapatkannya untuk berbaris. 6 karakter yang tidak digunakan
OSXouz
telah ditempelkan ke salah satu string literal sebagai gantinya.Sunting: Setelah refleksi lebih lanjut, tidak mungkin menghasilkan lebih dari 28 karakter dengan cara ini.
UPPER ^ lower
akan selalu menghasilkan karakter antara 32 dan 63, sehingga semua 10 digit diperlukan untuk@[\]_`{|}~
. Empat dari 22 sisanya digunakan dalam skrip itu sendiri, hanya menyisakan 18 yang dapat diperoleh dengan huruf saja. Tiebreaker dapat ditingkatkan secara signifikan.sumber
Ruby, 91 karakter
Keluaran
6273
.%{...}
Trik dicuri dari Jan Dvoraksumber
%{ !"#$&\',-/450:<=>ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcefghijklmnqvwxyz|~};puts([email protected]*98+1)
adalah apa yang saya pikir Anda inginkan (untuk 91 karakter) dengan tanda koma dipindahkan untuk digunakan sebagai pemisah yang dapat dicetak (bukan baris baru), dan dengan huruf 'ord' dihapus dari dalam kurung keriting.Perl, 61 karakter
Keluaran:
$:
default ke" \n-"
.x8
mengulanginya delapan kali; hasil 24 karakter kemudian bitwise-xored dengan pembatasan 23 karakter (yang terakhir-
dibiarkan apa adanya). Bagian kedua adalah 12-karakter q-string bitwise-dan 10-karakter barestring (2 karakter terakhir dibuang).sumber
Ruby, 95 karakter, 6 suntingan
Ya. Itu dia. Hanya string literal mengambang bebas yang tidak pernah dicetak. Ruby mendukung string literal (dipinjam dari Perl, saya pikir) dalam bentuk persen-jenis-pembatas - pembatas adalah karakter non-alfanumerik, dan jika pembatas pembukaan adalah braket pembuka (salah satu
[({<
), pembatas penutup adalah yang sesuai braket penutup (braket bersarang diperbolehkan).Saya menyadari ini lebih dari pengajuan baseline, tetapi kecuali seseorang berhasil mencetak sesuatu atau kecuali ada bahasa dengan string bentuk bebas dua-char literal dengan pembatas pembukaan dan penutupan yang berbeda , ini adalah yang terbaik yang ada.
sumber
Tcl 96, edit jarak 12
sumber
join {!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghklmpqrstuvwxyz|~}
tampaknya berfungsi menggunakan 95 karakter? (Terima kasih atas entri Anda. Maaf tentang bunglon - sayangnya saya mengedit dengan tergesa-gesa, dan seharusnya melakukan hal-hal yang berbeda.)