Buat program sesingkat mungkin yang sesingkat mungkin yang menampilkan teks "Hello World".
Agar dapat dianggap sebagai program yang dikaburkan, ia harus memenuhi setidaknya dua persyaratan berikut:
- Tidak mengandung karakter:
h
,l
,w
dand
dalam hal apapun - Tidak mengandung karakter:
e
,o
,r
,0
, dan1
dalam hal apapun - Tidak mengandung karakter:
2
atau7
Masukan:
tidak ada
Keluaran:
Hello World
code-golf
obfuscation
hello-world
restricted-source
Kevin Brown
sumber
sumber
import
dalam python tidak diizinkan.72
adalah"H"
yang adalah mengapa saya memilih duaJawaban:
GolfScript, 17 karakter
Saat menguji pengiriman ini, harap simpan file tersebut sebagai biner langsung, bukan UTF-8. Mengalami masalah saat membuat ulang file? Inilah hexdump-nya:
sumber
Perl
Karena jawaban yang jelas menggunakan semacam pergeseran, saya merasa berkewajiban untuk memposting sesuatu menggunakan Acme :: EyeDrops , namun dengan kekuatan ekstra saya pikir saya harus sedikit lebih menyenangkan.
Peringatan
Sejak Perl versi 5.18, mekanisme yang memungkinkan kode ini dijalankan telah menjadi sangat kuat sehingga telah dinonaktifkan secara default untuk mencegah penyalahgunaan. Oleh karena itu pada versi 5.18+ Anda dapat menambahkan
use re 'eval';
ke bagian atas skrip atau, jika skrip tersebut bernamaworld.pl
Anda dapat menjalankannya sepertiperl -Mre=eval world.pl
. Sangat disayangkan bahwa karakter yang tidak sedap dipandang ini harus ditambahkan, tetapi c'est la vie. (Catatan: Saya ingin menekankan bahwa mengaktifkan fitur ini tidak menggunakan beberapa pustaka atau addon, kode yang ditampilkan adalah kode Perl yang valid, mekanismenya tidak lagi diaktifkan secara default).sumber
(?{ code })
untuk mengevaluasi kode Perl kustom saat pencocokan regexp. Kode Perl kustom mencetak pesan. Itu bagus karena tidak melanggar aturan apa pun.C # (175 karakter)
Itu cukup sulit untuk melakukan ini di C # karena pembatasan menghalangi penggunaan kata kunci umum yang cukup banyak. Dimungkinkan dalam C # untuk menggunakan urutan pelarian \ uxxxx Unicode dalam pengidentifikasi, tetapi sayangnya tidak dalam kata kunci.
Saya menduga bahwa solusi ini hanya berfungsi ketika dikompilasi dengan .NET 4.0. Lihat penjelasan mengapa.
Penjelasan
sumber
Uri
bukanobject
untukb
. Anda dapat menggunakan\xHH
dalam string daripada di\u00HH
mana itu tidak ambigu (\x
panjang variabel). Setelah dipikir-pikir, Anda tidak perlub
sama sekali dan hanya dapat menggunakan kembalic
sebagai argumen pertamaInvoke
. MSDN menyatakan bahwa untuk metode statis argumen pertama diabaikan. Ini membawanya ke 175 untuk saya.Invoke
bisa apa saja, itu tidak perlu bahkanc
, bisa jadi0
... :)c
(yang sayangnya tidak bekerja karenanew
membutuhkane
dan.Split('x')
terlalu lama (keluar pada 177)GetMethods
. +1BrainFuck, 106 pukulan
Memenuhi semua aturan dan itu pasti dikaburkan.
sumber
++++++++++[>++++++>+++<<-]>++++++++++++.---.+++++++..+++.>++.<++++++++.--------.+++.------.--------.
hanya 100 pukulan, milikku lebih baik dari milikmuJavascript, 2595
Ini hanya melanggar aturan 2.
sumber
. That's followed by a comment and the expression
['_']` dalam konteks kosong. Kemudian variabelo
(bersama dengan_
dan(゚ー゚)
) diberi nilai 3. Ini berlanjut dalam nada itu, melakukan banyak pekerjaan tambahan yang tidak berbahaya, yang secara efektif tidak boleh, dan menggunakan cara bundaran untuk melakukan pekerjaan yang diinginkan (meneleponalert("Hello world")
) dengan tidak jelas. mode.Befunge-93 - 10x9 blok
Maaf. : D
Saya tidak pergi untuk ukuran kecil di sini, saya mencoba untuk benar-benar MENINGGALKAN kode dengan memasukkan sebanyak mungkin wajah smiley dan kebisingan! : D
Harus sesuai dengan aturan 2 dan 3.
sumber
Golfscript - 17 karakter
Lebih mudah untuk menyalin / menempel daripada Chris
Pada dasarnya caesar cipher digeser oleh 1 char
sumber
e
isinyaPython
Aturan I & III (34 karakter)
Aturan I & III, alternatif (39 karakter)
Aturan II & III (37 karakter)
Aturan I dan II (50 karakter)
Ketiga aturan (58 karakter)
sumber
import codecs
sebelum dapatcodecs.decode
JavaScript, 366 karakter
Setelah melihat solusi Perl Joel Berger, saya merasa terdorong untuk melakukan sendiri seni kecantikan ASCII ... JavaScript, tidak menggunakan alfanumerik, dan bertentangan dengan output JSFuck ukuran sebenarnya cukup.
sumber
($)
berubah menjadi()
(karena saya menambahkan$
untuk simetri).rot13 - 11 karakter
Uryyb Jbeyq
2019/2/12: Jawaban ini disimpan karena alasan historis, dan bukan lagi jawaban yang sah berdasarkan aturan situs saat ini.
sumber
Bash,
3025 karakterDengan terima kasih kepada Peter Taylor untuk penggunaan herestring.
sumber
tr G-t F-s<<<Ifmmp\ Xpsme
Scala, 39
Solusi seperti cetak ("Qnuux) peta` x {um "(_- 9 toChar)) (35 karakter) melanggar aturan 1 dan 2 (" toChar "berisi" h "dan" r "), yang menjadikan ini agak sulit.
Akhirnya muncul dengan ini:
Saran untuk penyambutan selamat datang
sumber
TeX, 95 Bytes
Melanggar aturan ketiga.
Jalankan dengan
tex filename.tex
untuk mendapatkan output dvi, ataupdftex filename.tex
mendapatkan pdf.sumber
> <> , 2 × 20 = 40 karakter
Melanggar Aturan II, karena saya tidak bisa menampilkan karakter tanpa menggunakan
o
.sumber
Windows PowerShell, 91
959798Hanya melanggar Aturan II.
Itu sangat jahat yang sudah
char
melanggar dua aturan sendiri.Dan ya, yang ini sulit untuk bisa bekerja.
$OFS
ke''
jadi ketika casting array ke string tidak ada spasi yang muncul di antara item.char
sebenarnya adalah bagian tersulit dari semuanya dan saya menghabiskan waktu sehari mencari jalan. Saya mendapatkan semua yang lain bekerja dengan baik, tetapi begitu saya menghitung mereka, saya punyaint
, bukanchar
. Menempatkan mereka kembali ke dalam tali agak sulit.Saya menemukan cara untuk memohon
Invoke-Expression
tanpa perlue
juga:tapi itu masih kurang argumen. Dan saya sudah membuang tujuan saya untuk memuaskan ketiga aturan saat itu. Juga tidak terlalu membantu saya dalam casting
char
.Dipersingkat sedikit dengan versi PowerShell yang lebih baru. Sayangnya, tidak ada cara yang berbeda untuk menciptakan hasil yang muncul.
sumber
PHP (16 byte)
Saya perhatikan bahwa contoh PHP saya sebelumnya tidak cukup membingungkan, jadi mari kita lihat contoh-contoh yang lebih jelas dikaburkan (peringatan, kebingungan!). Juga, secara terang-terangan menyalin contoh GolfScript, kecuali membuatnya lebih kecil (apakah mungkin?). Entri ini membutuhkan PHP 5.4 atau
short_open_tag
diaktifkan. Tidak ada aturan yang dilanggar saat membuat ini. Bahkan, entri ini tidak mengandung huruf atau digit ASCII.Contoh ini tidak melanggar aturan apa pun. Selamat bersenang-senang. Untuk menghasilkan file, jalankan perintah berikut.
Atau, jika Anda tidak percaya menjalankan
printf
perintah, saya sudah menyiapkan file Base64 dump.Jika Anda berpikir bahwa kedua metode untuk membuatnya melanggar aturan, saya juga telah membuat file di Dropbox .
Dan untuk menjalankannya.
File yang dihasilkan harus memiliki 16 byte. Selamat bersenang-senang menjalankannya. Harap perhatikan bahwa jika Anda
E_NOTICE
mengaktifkan peringatan, peringatan akan ditampilkan. Abaikan saja, memperbaikinya akan sia-siadua karaktersatu karakter (saya bisa menggunakan@
operator, setelah semua) dan akan membuat Base64 yang dihasilkan terlihat kurang keren.sumber
Spasi (167 karakter)
Untuk mendapatkan program WS, gantilah spasi, Tab, atau karakter Linefeed untuk S, T, L, masing-masing, dalam string berikut:
atau unduh program whitespace-only "mentah" di file teks hello.ws .
Ketika dijalankan oleh juru bahasa WS ini , program ini mencetak "Hello World".
Penjelasan (abaikan spasi putih di sini!):
String "tengah" (mis.
TSSTSSSL
) Adalah kode ascii (dalam biner, denganS
menunjukkan 0,T
menunjukkan 1) untuk huruf-huruf berikutnya dalam "Hello World". AwalanSSS
mendorong nomor yang mengikutinya (diakhiri oleh aL
) ke stack.TLSS
menampilkan karakter yang kode ascii-nya ada di atas tumpukan. Akhirnya, menurut tutorial ini , sebuah program harus diakhiri denganLLL
untuk keluar yang bersih oleh penerjemah.NB: Saya memasukkan ini sebagai jawaban terpisah, karena entri program WS lainnya adalah program 1287 karakter yang mencetak "Halo, dunia ruang!" alih-alih "Hello World" yang diperlukan.
sumber
Ruby - 63 karakter
sumber
puts "Gdkkn~Vnqkc".split("").map(&:succ)*''
- 43C, 160 karakter
Hanya bekerja pada mesin little-endian dengan int 4-byte:
Memenuhi ketiga aturan.
sumber
p[];main(){p={(5*5*5*5*5*64+96696)*(443+5688),(5*3*4*3+4-3)*(66*45*6-6*6-4+3)*83*(3+4),6544494+36868};puts(p);}
- 111 karakter.x[]={45483*39994-3958,48465*38543-5584,6584695-3333};main(){puts(x);}
- 69 karakter. Saya yakin saya bisa mencukur lebih banyak lagi diberikan lebih banyak waktu untuk menghitung matematika literal lagi. Adalah cara yang menyenangkan untuk menghabiskan beberapa jam, :):PHP, 28 byte
Tidak persis dikaburkan, tapi sangat pendek dan jelas :). Menunjukkan itu bahkan ketika membatasi karakter Anda dapat membuat sangat mudah untuk mengikuti program. Batasan 1 dan 3 diikuti. Batasan 2 dilecehkan.
Perhatikan bahwa ini perlu
short_open_tag
diatur, kecuali Anda menggunakan PHP 5.4 atau lebih tinggi. Mungkin beberapa contoh lebih pendek, tetapi saya pikir contoh ini cukup singkat.sumber
bash 28 karakter:
atau dengan / bin / echo (18 karakter) *) lihat diskusi di bawah ini.
Selftest:
Lebih keras dari pada tebusan! Alat, untuk membalikkan Kata, alat berpikir 'H' atau 'o' terbalik terbaik ditampilkan sebagai H atau o. Ini akan bertentangan dengan grup 1 (Hlwd: 27: eor01) masing-masing 3.
H dapat ditampilkan dengan
tapi 01 dan 2 juga diracuni. Wah! Tetapi gema bash-buildin tidak hanya memiliki opsi untuk menampilkan nilai okci ascii, tetapi juga heksadesimal:
Tetapi jika kita menggunakan bash sebagai bahasa pemrograman, perintah echo adalah bagian dari program, yang tidak hanya menghitung jumlah karakter, tetapi juga mengandung karakter-karakter yang diracuni (hlwd: 27: eor01) eho dari grup 1 dan 3.
Jadi inilah saat gema itu mati. Untungnya, ada printf, yang tahu "% b" untuk ditampilkan.
R adalah satu-satunya karakter bermasalah di printf, dan milik grup 3. Karena 'o' ada di grup terakhir, kita bisa membiarkannya di Hello dan di World, tetapi kita bisa menggunakan omicron yang bentuknya seperti o, atau °
°
.Tautan:
sumber
C (94)
Pada mesin Endian kecil:
Melanggar aturan II, tetapi memuaskan sisanya.
sumber
JavaScript - 132 karakter
Melanggar aturan I
Penggunaan :
sumber
1
dengan!![]+![]
dan0
oleh""-""
untuk tidak melanggar aturan # 2.!![]+![]
? Kenapa tidak adil4-3
?Dis ,
10283 karakterBuka gulungan kode karena surat dapat dibuat dengan kurang dari lima operasi berturut-turut. Menyimpan beberapa karakter dengan menggunakan kembali nilai akumulator: dua
l
berturut-turut,SPACE
dapat dihasilkan dario
dand
dapat dihasilkan daril
.Versi lama
Dengan komentar di bawah ini. Itu menggunakan urutan lima operasi identik untuk menghasilkan semua karakter dalam
Hello World
: satu rotasi dan empat pengurangan.sumber
C: 162 karakter (tidak termasuk baris baru yang tidak perlu)
Saya memilih keterbacaan dan transparansi saat menulis ini.
Itu memenuhi ketiga persyaratan.
sumber
7
, melanggar aturan # 3. Tapi itu akan mudah untuk dihilangkan7
. Juga dengan menambahkan beberapaint
s, dan menambahkan beberapa tanda kurung tambahan, dan menambahkanint puts(int*);
ke awal, itu dikompilasi dengangcc -ansi -W -Wall
hanya dengan satu peringatan: kontrol mencapai akhir fungsi non-void .Bash,
2420 karakterAnda harus menginstal paket "bsdgames".
Terima kasih gnibbler :)
sumber
PostScript, 41 karakter
Pemakaian:
$ gs -q -dNOPROMPT -dNODISPLAY filename.ps
sumber
gsnd -q -- filename.ps
JavaScript, 66 karakter
Solusi JavaScript lain, kali ini melanggar aturan # 2.
Di atas mengikuti konsep di balik jawaban hallvabo. Sebelum saya mengetahui pendekatan itu, saya memiliki versi yang lebih jelas:
yang juga melanggar aturan # 2 dan masuk di 114 karakter. (Lepaskan carriage return dalam solusi kedua ini karena hanya ada untuk dibaca.)
sumber
unescape
.unescape
, dan saya hanya bermain selama setahun lebih dari satu dekade yang lalu ... Apa yang salah dengan saya?Haskell, 38
Batasan 1 dan 3 diikuti.
sumber
Fourier, 39 byte
Fourier selalu dikaburkan. Ini mengikuti semua aturan.
Kerusakan:
Ini mungkin bisa sedikit disempurnakan.
sumber