Tugasnya sederhana. Tulis penerjemah untuk bahasa * .
Berikut tautan yang lebih besar ke wiki.
Hanya ada tiga program * yang valid:
*
Cetakan "Hello World"*
Mencetak angka acak antara 0 dan 2.147.483.647*+*
Berjalan selamanya.
Kasing ketiga harus merupakan infinite loop sesuai dengan spesifikasi dalam pertanyaan ini
Memasukkan:
- Input dapat diambil melalui metode input apa pun yang dapat diterima oleh aturan I / O standar kami
- Itu akan selalu menjadi salah satu program di atas
Keluaran:
- Kasing pertama harus dicetak dengan tepat
Hello World
, dengan atau tanpa jeda baris tambahan. - Untuk kasus kedua, jika maksimum bilangan bulat bahasa Anda lebih kecil dari 2.147.483.647, gunakan maksimum bilangan bulat bahasa Anda
- Kasing pertama dan kedua dapat dicetak ke keluaran apa pun yang dapat diterima oleh aturan I / O standar kami.
- Kasus ketiga seharusnya tidak memberikan output apa pun.
Mencetak:
Karena ini adalah kode-golf , jawaban tersingkat, dalam byte, menang.
code-golf
interpreter
code-golf
array-manipulation
sorting
code-golf
halting-problem
code-golf
javascript
code-golf
algorithm
code-golf
arithmetic
code-golf
math
counting
code-golf
math
code-golf
decision-problem
radiation-hardening
code-golf
conversion
bitwise
code-golf
number
decision-problem
code-golf
string
decision-problem
code-golf
random
game
code-golf
ascii-art
graphical-output
code-golf
decision-problem
binary-tree
tree-traversal
code-challenge
array-manipulation
code-challenge
graphical-output
path-finding
test-battery
algorithm
code-golf
integer
factorial
code-golf
binary-tree
code-golf
grid
graph-theory
code-golf
regular-expression
quine
code-golf
encoding
code-golf
king-of-the-hill
javascript
TheOnlyMrCat
sumber
sumber
0
dan2,147,483,647
', apakah itu inklusif atau eksklusif? (Misalnya, apakah0
output yang valid?)-1
dari saya.Jawaban:
* , 0 byte
Karena * tidak memiliki cara membaca input, aturan default memungkinkan menentukan bahwa input harus diberikan dengan memasukkannya ke dalam program .
(... Saya pikir. Ada kondisi "setidaknya dua kali lebih banyak downvotes daripada downvotes" yang saya tidak punya perwakilan untuk memverifikasi).
sumber
R , 69 byte
Cobalah online!
switch
mencoba untuk mencocokkan argumen yang dinamai dan jika tidak ada kecocokan, pilih yang pertama tanpa nama setelah yang pertama, yang dalam hal ini adalah infinite looprepeat{}
.sumber
Jelly ,
2120 byteTautan monadik yang menerima daftar karakter.
Cobalah online!
vL’...
juga berfungsi (lihat di bawah).Bagaimana?
Alternatif
sumber
C (gcc) ,
6663 byteBerkat attinat untuk byte -3.
Saya hanya perlu memeriksa karakter kedua: jika LSB diatur, itu adalah
+
(dengan demikian programnya "*+*
") dan loop program. Setelah itu, jika itu adalahNUL
, programnya "*
" dan kami tampilkanHello World
; jika tidak, ini akan menampilkan nilai acak ("*
", satu-satunya pilihan lain yang tersisa.)Cobalah online!
sumber
f(char*s){*++s&1?f(s-1):printf(*s?"%d":"Hello World",rand());}
rand
tidak dijamin untuk mengembalikan nilai yang cukup besar;RAND_MAX
danINT_MAX
tidak dijamin akan sama (dan tidak pada kompiler dunia nyata, misalnya Visual StudioRAND_MAX
adalah32767
, sementaraINT_MAX
ini [pada x86 yang modern sistem berasal] yang2147483647
nilai yang ditentukan dalam pertanyaan OP).Python 2 ,
103938987 byteSaya menggabungkan jawaban saya sebelumnya dengan Chas Browns ini jawaban dan mendapat sesuatu yang beberapa byte lebih pendek.
Angka acak akan antara 0 dan 2 ** 31-1 inklusif.
Cobalah online!
Versi sebelumnya:
103 byte
93 byte
sumber
randint(0,2**31-1)
denganrandrange(2**31)
.while'*'<i
save 2randrange(2**31)
kegetrandbits(31)
(yang terakhir kembalilong
, tidakint
, tetapiprint
akan mencetakstr
formulir, bukanrepr
formulir, sehingga trailingL
tidak akan ada di sana).i=input()
hanya berfungsi jika input dikutip, jika Anda hanya input polos*/ * /*+*
, input tersebut akan mati denganSyntaxError
(karenainput
termasuk implisiteval
); Anda harus memasukkan'*'/' * '/'*+*'
(atau setara dengan tanda kutip ganda sebagai gantinya). Saya tidak melihat sesuatu yang jelas pada aturan I / O standar yang akan memungkinkan ini, yang mungkin berarti Anda harus menggunakanraw_input()
, seharga empat byte.input()
mengambil string sebagai input dan mengevaluasinya. Saya tidak benar-benar menambahkan input, saya hanya mengambil string sebagai input, dan string memiliki tanda kutip. Ini cukup standar, dengan cara yang sama saya bisa mengambil array seperti[1,2,3]
bukan sebagai string yang dibatasi yang kemudian saya harus pisahkan dan parsing. Tujuan dari situs ini bukan untuk membuat input menjadi ketat, ini untuk membuat I / O mudah sehingga kita dapat memfokuskan kode pada tantangan yang ada.Tong ,
-lp
,-ir
302625242019 bytes-1 byte menggunakan flag
Cobalah online!
Jawab Sejarah
Cobalah online!
Disingkat
Hello World
menjadi string kamusCobalah online!
Saya tidak pernah berhenti kagum pada kekuatan Keg. Kredit ke pengguna EdgyNerd untuk byte lain disimpan.
Versi sebelumnya
Cobalah online!
Kredit ke pengguna A__ untuk byte ekstra yang disimpan.
Versi lama
Intinya, ambil program input dan:
Kemudian secara implisit cetak tumpukan.
4 byte disimpan karena fakta bahwa hello world tidak perlu tanda baca.
Cobalah online! Versi lama
Cobalah online! Versi baru
sumber
Befunge-93 , 54 byte
Cobalah online!
Beranotasi:
Keacakan tidak seragam. Pada setiap kenaikan ada peluang 50% untuk berhenti menambah.
sumber
Japt , 22/25 byte
Solusi pertama adalah untuk spek asli yang memiliki
*<space>
sebagai program kedua dan yang lain adalah untuk spek yang diperbarui yang mengubahnya secara sewenang-wenang<space>*</space>
, dengan terima kasih kepada EoI untuk "perbaikan" yang disarankan.Keduanya melempar kesalahan overflow saat memasuki loop tak terbatas dari program ketiga tetapi, secara teoritis, dengan memori yang cukup (yang dapat kita asumsikan untuk keperluan kode-golf ), akan berjalan selamanya.
Coba program 1
Coba program 2
Coba program 3
Coba program 1
Coba program 2
Coba program 3
sumber
*<space>
. Tidak punya waktu untuk memperbarui sekarang.UÌ>S
alih - alih¢
pada terner keduaJavaScript (ES7), 66 byte
Cobalah online! (Halo Dunia)
Cobalah online! (angka acak)
Cobalah online! (loop tak terbatas)
sumber
x=(z=>x())&&x()
bekerja untuk -1byte dari kode loop tak terbatas, dengan asumsi browser tanpa ukuran tumpukan panggilan maks?Jelly ,
2321 byteCobalah online!
Tautan monadik yang mengambil argumen tunggal dan kembali
Hello World
, bilangan bulat 31 bit acak atau berulang tanpa batas sesuai spesifikasi.Semua opsi:
*
*
*+*
Penjelasan
sumber
Java (JDK) , 83 byte
Cobalah online!
sumber
Python 2 ,
918988 byteCobalah online!
2 byte terima kasih kepada Jonathan Allan ; 1 byte thx ke ShadowRanger .
sumber
while'*'<p
save 2getrandbits(31)
menghemat satu byte lebihrandrange(2**31)
.PowerShell,
60, 56 byteCukup versi bodoh, teknik hanya bermain golf di sini adalah menghilangkan
Get-
diGet-Random
.UPD. Dipotong menjadi 56 byte dengan menghapus tanda kutip, terima kasih untuk veskah !
sumber
Perl 5
-p
,4339 byteCobalah online!
sumber
C # (Visual C # Interactive Compiler) , 71 byte
Cobalah online!
sumber
Ruby
-n
, 47 byteCobalah online!
sumber
Bahasa Wolfram (Mathematica) , 65 byte
Cobalah online!
sumber
Arang , 30 byte
Cobalah online! Tautan adalah untuk mengucapkan versi kode. Menyalahgunakan format input default Charcoal yang terbelah pada spasi jika hanya ada satu baris, sehingga input angka acak sebenarnya tampak seperti tiga input. Penjelasan:
Ulangi sementara input pertama berisi a
*
.Jika input pertama adalah satu-
*
satunya ...... lalu ganti dengan
Hello World
, sehingga menyebabkan loop berakhir.*+*
tidak diganti, menghasilkan loop tak terbatas.Jika input pertama tidak kosong maka outputlah.
Tetapi jika kosong maka output bilangan bulat acak dalam kisaran yang diinginkan.
sumber
Tambahkan ++ , 78 byte
Cobalah online!
Penjelasan
sumber
Brachylog ,
2623 byteCobalah online!
Mengambil program sebagai string melalui variabel input, dan mengabaikan variabel output. Sangat mengeksploitasi jaminan bahwa input hanya salah satu dari tiga program yang valid: setiap panjang-tiga input akan berperilaku seperti
" * "
atau"*+*"
tergantung pada apakah karakter pertama adalah spasi, dan input lain akan berperilaku seperti apa"*"
.sumber
PHP , 51 byte
Cobalah online! (Halo Dunia)
Cobalah online! (Angka acak)
Cobalah online! (Infinite Loop)
Mengambil karakter input kedua yang dapat berupa
''
,'*'
atau'+'
. Dalam kasus'+'
tersebut'*'<'+'
akan menjadi kenyataan dan loop akan menjadi tak terbatas, yang lain, setelah loop, "Hello World" atau nomor acak ditampilkan. Secararand()
otomatis menampilkan angka antara 0 dangetrandmax()
yang menggunakan didefinisikanRAND_MAX
dalam pustaka C standar dan secara default ada2147483647
di sebagian besar platform / lingkungan, termasuk TIO.sumber
05AB1E , 21 byte
Cobalah online. (CATATAN: Buildin acak cukup lambat dengan daftar besar, sehingga mungkin diperlukan beberapa saat sebelum hasilnya diberikan.)
Penjelasan:
Lihat ini ujung 05AB1E saya (bagian Cara menggunakan kamus? ) Untuk memahami mengapa
”Ÿ™‚ï
adalah"Hello World"
.sumber
Pyth , 32 byte
Cobalah online!
Penjelasan (Python-ish)
sumber
hC*4\ÿ
adalah^2 32
, tetapi agar solusinya benar, Anda harus menggunakannya^2 31
. Selain itu, gunakanz
alih-alihJw
, menghemat 1 byte lagi. Dan penjelasan Anda melewati batas dengant
tepat sebelumnyalJ
.+
karakter apa pun , menyimpan 1 byte karena Anda tidak perlu menguranginya.APL (Dyalog Unicode) , 39 byte SBCS
Lambda awalan anonim.
Cobalah online!
{
"dfn";⍵
adalah argumennya:'+'∊⍵:
jika plus adalah anggota argumen:∇⍵
Ekor berulang pada argumen' '∊⍵
jika ruang adalah anggota argumen:?0
float acak (0–1)2E31×
skala ke (0–2³¹)⌊
lantai'Hello World'
lain kembalikan stringsumber
Commodore BASIC (VIC-20, C64, TheC64Mini dll) - 170 tokenize byte BASIC
Saya pikir untuk melakukan ini dengan lebih akurat, saya harus mempelajari dunia aneh 6502 bahasa rakitan, tetapi ini adalah konsep pertama.
Poin pertama,
INPUT
kata kunci dalam Commodore BASIC mengabaikan spasi putih, sehingga sub-rutin pada baris9
adalah cara cepat dan kotor untuk menerima entri keyboard termasuk spasi.Poin kedua, Commodore BASIC integer memiliki kisaran 16-bit yang ditandatangani, jadi -32768 hingga +32767 sumber - jadi saya menyimpan nomor acak yang dihasilkan termasuk 0 - 32767
sumber
Gelisah ,
143135 byteSaya bukan pegolf yang baik ... RNG menghasilkan nilai yang sama setiap kali karena ini adalah generator angka pseudo-acak.
Cobalah online!
sumber
JavaScript, 63 Bytes, tanpa rekursif tanpa batas
jaringan buruk sehingga tidak ada tautan TIO
sumber