Keluarkan panjang Lorem ipsum yang sama dengan kode Anda!
Aturan:
- Kode tidak dapat identik dengan output
- Tidak ada perpustakaan kompresi
- Program terpendek dalam dua minggu menang
- Tidak ada penggunaan jaringan, membaca berkas dan trik lain yang dengan satu bisa dengan mudah memecahkan masalah kode golf (dengan
eval
,exec
, dll)
Contoh
Your code with length 25.
Keluaran
Lorem ipsum dolor sit ame
code-golf
string
compression
self-referential
randomra
sumber
sumber
Jawaban:
GolfScript (122 atau 138 byte)
Tampaknya ada ambiguitas yang sangat kecil dalam aturan: apa sebenarnya arti "keluaran"? Banyak program berasumsi bahwa "output" dari suatu program tidak termasuk baris baru akhir, yang ada untuk memastikan bahwa baris berikutnya dari input shell dimulai pada baris yang terpisah.
adalah 122 byte dan menghasilkan 122 byte lorum ipsum dan sebuah baris tambahan.
adalah 138 byte dan menghasilkan 138 byte lorum ipsum tanpa baris baru.
sumber
rot13 (1)
Saya terkejut tidak ada yang datang dengan ini sebelumnya :)
dan sebagai bonus, solusi perl yang sangat sederhana
Perl (252)
sumber
...ExerciTationU/;s,\S\K[A-Z], \l$&,g;print
print'LoremIpsumDolor...NostrudExerciT'=~s,\S\K[A-Z], \l$&,gr
very simple perl solution
lebih lama.Golfscript - 161
Sunting: solusi python menghasilkan panjang yang berbeda dari yang dimilikinya, jadi saya melakukan yang lebih baik dengan skrip golf. Ini juga jawaban skrip golf pertama saya.
Saya tidak yakin bagaimana ini dikodekan di sini, jadi di sini adalah tautan ke file.
sumber
Python 2 - 332
Jika ada yang peduli, berikut daftar sebagian perbaikan:
1181 -> 630 -> 549 -> 510 -> 456 -> 416 -> 381 -> 332
sumber
Mathematica, 8
Saya membuat asumsi bahwa output yang identik secara visual dapat diterima. Karena itu saya menggunakan karakter ini sebagai pengganti ASCII "i" yang menyebabkan kedua Simbol diurutkan secara otomatis dalam urutan yang benar:
sumber
Bash, 156
Karena dilarang menggunakan "perpustakaan kompresi" yang sebenarnya, saya akan menyalahgunakan
base64
dari coreutils. (xxd -r
untuk memecahkan kode pengiriman)Saya membuat kode di atas menggunakan program PHP ini:
sumber
cat $0
.Mathematica
4746Tidak yakin apakah ini permainan yang adil. Mathematica memiliki teks 'lengkap' Lorem ipsum dalam data contohnya. Berikut ini hanya memberitahu Mathematica untuk mengambil string dengan panjang tertentu dari contoh bawaan Lorem Ipsum.
Edit :
Asli :
sumber
PHP, 75 (Dinamis)
Contoh output:
Itu tidak menggunakan kompresi, tetapi itu menekuk aturan. Banyak.
Anda dapat menambahkan karakter sampah ke akhir contoh dan masih memiliki output yang benar (hingga 2k + karakter).
PHP, 59 (Statis)
Sama seperti di atas, tetapi menggunakan ukuran tetap dan akan salah jika karakter tambahan ditambahkan.
sumber
Windows batch,
878720Diuji pada Windows XP dan Windows 7, tetapi harus bekerja untuk setiap cmd dengan ekstensi (IIRC, Windows NT dan yang lebih baru).
Harus dijalankan menggunakan
CMD /V:ON /C batchfile
untuk mengaktifkan ekstensi variabel yang tertunda, tapi saya lebih suka yang memiliki non codegolf ramahSETLOCAL EnableDelayedExpansion
di dalam file batch.sumber
J (144)
Sudah 128 jika saya tidak perlu membuatnya menjadi skrip yang tepat sehingga Anda dapat mengukur output.
Cara kerjanya: hanya ada 23 karakter unik dalam teks, sehingga ini dapat direpresentasikan dalam pengkodean 5-byte. Karakter dalam string yang dikodekan dikonversi ke nomor ASCII mereka (
a.i.
), kemudian masing-masing angka diubah menjadi representasi basis-2 mereka (#:
), kemudian bit dikelompokkan dalam kelompok lima (_5>\,
), kemudian masing-masing kelompok ini dikonversi ke nilainya (#.
), dan ini digunakan sebagai indeks ke dalam tabel pencarian. ({~
).Tabel pencarian sebenarnya perlu sedikit mengutak-atik, karena literal J string tidak dapat berisi
\n
,\r
atau\0
.Hexdump:
sumber
('VLI., ',97}.a.)
dengan cara tertentu tidak mengacaukan literal lainnya.