Tugas:
Buat program yang dikaburkan yang mencetak Hello World!
(persis seperti itu). Program Anda mungkin tidak memiliki string apa pun di dalamnya.
Aturan:
- Anda dapat menggunakan bahasa pemrograman apa pun yang Anda suka.
- Jadikan sesederhana mungkin
- Ini adalah kontes popularitas , jadi jawaban dengan kemenangan terbanyak menang.
catatan:
Ini bukan duplikat dari pertanyaan ini . Yang itu kode-golf dan punya aturan berbeda.
:)
/[dehlorw01]/
. Juga, panjangnya dinilai. Dalam hal ini, itu tidak memerlukan penggunaan string (dan mungkin tidakchar[][]
, layu). Panjangnya tidak dihitung, tetapi kreativitas adalah faktor penentu utama, dengan demikian tag popularitas-kontes .Jawaban:
Python 2
Saya kebetulan bermain dengan ini kemarin, jadi:
Ini adalah versi yang lebih mudah dibaca: http://codepad.org/UzSmoxF2
Catatan:
Satu baris, ekspresi tunggal (yaitu tidak ada pernyataan cetak).
Tanpa string, tanpa int; hanya fungsi, akses atribut, daftar, tupel, matematika dasar, satu
True
, dan satu argumen bintang.Minimal penggunaan builtin (
__import__
,getattr
, danchr
sekali masing-masing).Payload dapat diubah dengan mudah. Ini adalah program yang saya tulis untuk membuatnya.
Sunting: Saya menulis penjelasan yang cukup substansial tentang cara kerjanya di blog saya .
sumber
JavaScript
Cukup jalankan ini di konsol browser (mis. Di Firebug atau di Chrome Dev Tools).
sumber
C
Salam berganda:
sumber
PHP
Saya telah menerjemahkan ini ke dalam satu pernyataan, yang menurut saya membuatnya lebih sulit untuk diuraikan. Versi ini hanya menggunakan 13 karakter unik.
Versi asli
14 karakter unik. Saya bisa membuat skrip untuk menghasilkan ini dan menyebutnya "PHPFuck", tapi saya pikir itu tidak akan sangat berguna.
Bagaimana itu bekerja
sumber
/H/
dan/W/
di dalamnya.PHP
Berikut ini skrip PHP sederhana yang ditampilkan
Hello World!
:Klik di sini untuk demo.
sumber
;)
Ruang putih
Wikipedia: Whitespace (bahasa pemrograman) Juru Bahasa
Online untuk Menguji Jawaban
Program mendorong kode karakter ASCII melalui langkah-langkah berikut (diambil dari bilah sisi debug penerjemah):
sumber
Bash (di Linux)
Saya harap skrip shell Anda tidak terlihat seperti ini:
attr
file tersebut adalah file pertama/proc/$PID
dengan nama file 4 karakterLihat apakah Anda dapat menemukan yang tersembunyi
eval
.sumber
${__[${____}]}${__[${__________}]}${__[${_______}]}${__[${___}${____}]} -${__[${____}]}
(echo -e
) dan digantikan!
oleh\\${_________}${____}${___}
\\${_________}$[${______}${____}#${_____[${___________}+${__________}]}]
buatlah tanda seru juga ;-)_________
akan diatur ke0
(apa yang akan terjadi jika skripsource
d bukan setelah kesalahan?).:
perintah untuk menghapus semua kondisi kesalahan yang dilaporkan sebelumnya$?
.GolfScript
Cukup menantang untuk membuat dan men-debug ini. Itu tidak mengandung string, hanya karakter.
Ini menghasilkan:
Tes online
Penjelasan
Bagaimana ini bekerja:
[' '(..4/++]
' '(
mengubah ruang untuk kode ASCII-nya:32
...
duplikat32
dua kali. Sekarang kamu punya tiga kali32
.4/
membagi atas32
dengan 4. Sekarang Anda memiliki dua kali32
dan satu kali8
.++
menambahkan32
,32
dan8
. Anda dapatkan72
, yang merupakan kode ASCII untukH
.[' '(3*)))))]
' '(
mengubah ruang menjadi32
.3*
gandakan32
dengan3
:96
)))))
meningkat96
dengan 5, Anda dapatkan101
, yang merupakan kode ASCII untuke
.[6`(2*.]
6`(
memberikan kode ASCII dari char6
:54
2*
kalikan dengan 2, Anda dapatkan108
, yang merupakan kode ASCII untukl
..
duplikatl
['1'..++~]
'1'..
menempatkan char1
di stack dan menduplikatnya dua kali.++
menggabungkan tiga karakter dan mengembalikan string111
~
mengubahnya menjadi integer111
, yang merupakan kode ASCII untuko
[8 2?2/]
8 2?
menghitung 8 2 , Anda dapatkan64
2/
membaginya dengan 2, Anda dapatkan32
, yang merupakan kode ASCII untuk spasi.[' '(4/.(`\`\+~]
' '(
mengubah ruang menjadi32
.4/.
membaginya dengan 4, Anda dapatkan8
. The.
duplikat itu.(`
decrements yang kedua8
dan mengubahnya menjadi string.\
menukar dua elemen teratas. Itu8
menjadi elemen teratas.`
mengkonversi8
ke string.\
menukar dua elemen teratas. Itu7
menjadi elemen teratas.+
menggabungkan dua string. Anda mendapatkan87
(sebagai string).~
mengkonversi string87
ke integer87
, yang merupakan kode ASCII untukW
.['1'.+~2?10-]
'1'.
menempatkan char1
di stack dan menduplikatnya.+~
menggabungkan dua karakter ke string11
dan mengubahnya menjadi integer.2?
menghitung 11 2 , Anda dapatkan121
.10-
menurun121
dengan 10, Anda mendapatkan kode ASCII untuko
:111
.[13(1)?8((0)))))*-]
13(
menempatkan12
di tumpukan.1)
menempatkan2
di tumpukan.?
menghitung 12 2 , Anda dapatkan144
.8((
menempatkan6
di tumpukan.0)))))
menempatkan5
di tumpukan.*
mengalikan6
dan5
, Anda dapatkan30
.-
kurangi144
dengan30
, Anda dapatkan114
, yang merupakan kode ASCII untukr
[6`(1)*]
6`(
dikonversi6
menjadi char dan ambil kode ASCII-nya:54
1)*
mengalikan54
dengan2
, Anda dapatkan108
, kode ASCII daril
['('(4/2?]
'('(
dikonversi(
ke kode ASCII-nya40
,.4/
dibagi40
dengan4
, Anda dapatkan10
.2?
menghitung 10 2 , Anda dapatkan100
, yang merupakan kode ASCII untukd
[' '()]
' '(
mengubah spasi menjadi kode ASCII-nya:32
)
menambah32
, Anda dapatkan33
, yang merupakan kode ASCII untuk!
+++++++++++
menggabungkan semua kode ASCII menjadi satu string.sumber
Brainf ***
Tidak yakin apakah ini benar-benar dianggap membingungkan, tetapi tidak pernah menggunakan lebih dari empat simbol plus atau minus berturut-turut. Jadi begitulah.
sumber
Mathematica
Matematika Aljabar I sederhana.
sumber
FromCharacterCode
istirahat semua intrik ...FromCharacterCode
sekarang dikaburkan. Begitu jugaCoefficientList
.C
Meta-dikaburkan. Menjalankan ini melalui preprocessor memberi Anda ini:
Keluaran:
Sunting: menambahkan penyorotan sintaks untuk kejelasan. :-P
sumber
u *l=x;
danfree(l);
memberi saya hasil yang sama.Sage
Penjelasan:
11382954456.digits(42)
mengkonversi 11382954456 menjadi basis 42 dan memberikan array dari digit-nya, yaitu[6, 1, 0, 5, 4, 3, 2]
Jadi
sum
sebenarnya memberikan jumlah 1 + 2 + 4 + ... + 32 + 64, yaitu 127Kemudian
5105882569598991528047304.digits(...)
mengonversi angka menjadi basis 128, yang memberikan daftar[72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]
Dan ini adalah kode ASCII untuk string yang akan dicetak.
sumber
Javascript (28187 karakter)
Mungkin bukan cara terpendek untuk menyapa dunia ini.
Dihasilkan dengan JSFuck
sumber
C:
Output:
Hello World!
sumber
Malbolge
atau
Saya tidak tahu bagaimana ini bekerja.
Sumber: http://en.wikipedia.org/wiki/Malbolge#.22Hello_World.21.22_in_Malbolge
sumber
Jawa
Ini dia. Bisakah Anda mengerti cara kerjanya?
Peringatan: Sangat fluktuatif. Dapat pecah secara spontan di masa depan.
sumber
;)
while((crazy = wtf.read()) != -1) stoned.write(crazy);
xDDibalik
Kode yang mengatakan "Halo, Dunia!":
Kode yang bertuliskan "Hello World!":
sumber
Jalak 98 - 7610 karakter
Berdasarkan jawaban saya di sini: https://codegolf.stackexchange.com/a/15736/9498
Sebagai bonus, jawaban ini tidak menggunakan angka apa pun dan tidak mengandung karakter yang berlebihan (yaitu tidak ada kombinasi karakter yang dapat dihapus sehingga menghasilkan output yang sama).
Cobalah di sini (rekatkan kode, ganti setiap instance
'/'[
dengan"/["
): http://www.quirkster.com/iano/js/befunge.htmlBagaimana itu bekerja:
Bonus tambahan: posting ini sangat panjang sehingga dibutuhkan ~ 1 detik sebelum stackexchange mengakui perubahan dalam penulisan posting ini.
sumber
Brainf ** k
Ini dikaburkan, namun, itu tidak bisa lebih sederhana.
Karena ketika Anda melihat dari dekat:
sumber
JavaScript
Tidak ada angka literal, tidak ada string literal, dan hanya satu fungsi (tidak termasuk
console.log
)!Demonstrasi di sini .
sumber
[]
literal?No number literals
, dan saya melewatkan nomornya. Jika mau, bisa digunakanArray()
sebagai gantinya. Itu tidak akan menjadi literal. Dan itu akan membuatnya lebih membingungkan. Atau, Anda dapat menggunakan+false
untuk+[]
. Atau bahkanArray()-Array()
.Python 2.6+
Tidak ada string, hanya fungsi polinomial sederhana .
sumber
Bahasa Pemrograman ini
Bisakah Anda menebak apa fungsinya?
Mungkin Anda harus masuk lebih dalam ke dalam lubang kelinci untuk mengetahuinya.
PENOLAKAN: Bahasa pemrograman lebih baru daripada tantangan.
sumber
C
Komentar ada hanya untuk menyesatkan pembaca yang tidak informasi.
Konstanta dikonstruksi sedemikian sehingga perwakilannya dalam memori (untuk sistem little-endian) sama dengan string
"Hello World!"
. Kemudian array (decay to pointer) dilewatkan keputs
, di manaputs
membabi buta memperlakukannya sebagai achar*
dan mencetak semuanya sampai hitsNUL
(yang dikodekan dalam angka terakhir).Kode mengkompilasi (dengan peringatan) dan mencetak output yang diharapkan dengan gcc 4.7.0, Windows 7 32-bit.
sumber
Jawa
Tes di sini.
Saya tahu, agak lumpuh untuk menggunakan karakter, bukan string. Aneh bahwa itu berjalan dengan benar. Bukan?
sumber
a[]
.C (jujur, preprocessor 90% C):
Hanya dengan gcc atau kompiler lain yang mendukung
__COUNTER__
makro.sumber
(Aku tahu itu tidak terlalu aneh .)
dc
Keluaran:
sumber
dc<<<5735816763073005734600101863690P
C #
Tidak ada string atau karakter literal, meskipun fungsi string yang digunakan. Kebingungan melalui rot13.
sumber
UryybJbeyq
enum dan menambah indeks surat mana yang akan diambil dari nama atau mengatur ulang indeks, berdasarkan pada berapa lama nama itu.C
Tanpa string, tanpa array, tanpa karakter, sangat sedikit "konstanta besar penyimpan data" yang jelas.
sumber
> <> (Ikan)
Saya membuat labirin kecil untuk penunjuk instruksi di> <>
Online> <> penerjemah di sini
sumber
C ++
Keluaran
sumber