Resolusi yang baik untuk 2015 adalah hidup lebih berkelanjutan. Kami akan mulai dengan daur ulang. Kode daur ulang!
Tugas Anda adalah mencetak nomor 2015
ke STDOUT, dengan atau tanpa tertinggal baris baru (dan hanya itu). Namun, Anda harus melakukannya dengan mendaur ulang beberapa kode lama dari PPCG. Inilah cara kerjanya:
- Pilih jawaban yang diposting di CodeGolf.SE sebelum 2014-12-16 00: 00: 00Z (hari saya memposting ini di kotak pasir). Pengecualian: Anda tidak boleh menggunakan jawaban apa pun dari tantangan Tahun Baru tahun lalu .
- Pilih satu blok kode dari jawaban itu (bukan cuplikan kode sebaris, itu harus berupa paragraf sendiri). Blok ini harus diiklankan sebagai kode aktual, mis. Anda tidak dapat menggunakan test case atau contoh output yang kebetulan menggunakan format monospace.
- Susun ulang karakter dalam blok kode itu untuk membentuk kiriman Anda untuk tantangan ini. Anda hanya dapat mengubah urutannya, tidak menambah atau menghapus karakter apa pun. Ini termasuk baris baru.
- Anda harus dapat menunjukkan bahwa blok sumber asli secara sintaksis valid dalam bahasa Anda. Dalam kasus terbaik, Anda dapat melakukan ini dengan menunjukkan bahwa itu berjalan tanpa waktu kompilasi atau run-time kesalahan. Jadi, sementara kode asli mungkin Java, Anda bisa menggunakannya untuk jawaban Whitespace (karena setiap file valid di Whitespace), tetapi mungkin tidak dapat menggunakannya untuk jawaban Python (seperti aslinya tidak akan sintaksis Python valid ).
Perhatikan bahwa jawaban Anda harus mengabaikan semua input dan kondisi eksternal (termasuk tanggal aktual saat ini). Ini mungkin membaca dari STDIN, katakanlah, selama itu tidak crash jika itu kosong, dan menghasilkan output yang sama untuk semua isi kemungkinan sungai.
Kode yang Anda hasilkan harus berupa program lengkap (bukan fungsi, atau cuplikan yang mengasumsikan lingkungan REPL).
Ini adalah kode golf, jadi jawaban tersingkat (dalam byte ) menang.
Papan peringkat
Saya yakin ini akan bermain sangat berbeda dalam bahasa yang berbeda. Jadi Cuplikan Stack berikut menghasilkan leaderboard biasa dan tinjauan umum pemenang berdasarkan bahasa.
Untuk memastikan bahwa jawaban Anda muncul, silakan mulai jawaban Anda dengan tajuk utama, menggunakan templat Penurunan harga berikut:
# Language Name, N bytes
di mana N
ukuran kiriman Anda. Jika Anda meningkatkan skor Anda, Anda bisa menyimpan skor lama di headline, dengan mencoretnya. Contohnya:
# Ruby, <s>104</s> <s>101</s> 96 bytes
function answersUrl(e){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function getAnswers(){$.ajax({url:answersUrl(page++),method:"get",dataType:"jsonp",crossDomain:true,success:function(e){answers.push.apply(answers,e.items);if(e.has_more)getAnswers();else process()}})}function shouldHaveHeading(e){var t=false;var n=e.body_markdown.split("\n");try{t|=/^#/.test(e.body_markdown);t|=["-","="].indexOf(n[1][0])>-1;t&=LANGUAGE_REG.test(e.body_markdown)}catch(r){}return t}function shouldHaveScore(e){var t=false;try{t|=SIZE_REG.test(e.body_markdown.split("\n")[0])}catch(n){}return t}function getAuthorName(e){return e.owner.display_name}function process(){answers=answers.filter(shouldHaveScore).filter(shouldHaveHeading);answers.sort(function(e,t){var n=+(e.body_markdown.split("\n")[0].match(SIZE_REG)||[Infinity])[0],r=+(t.body_markdown.split("\n")[0].match(SIZE_REG)||[Infinity])[0];return n-r});var e={};var t=1;answers.forEach(function(n){var r=n.body_markdown.split("\n")[0];var i=$("#answer-template").html();var s=r.match(NUMBER_REG)[0];var o=(r.match(SIZE_REG)||[0])[0];var u=r.match(LANGUAGE_REG)[1];var a=getAuthorName(n);i=i.replace("{{PLACE}}",t++ +".").replace("{{NAME}}",a).replace("{{LANGUAGE}}",u).replace("{{SIZE}}",o).replace("{{LINK}}",n.share_link);i=$(i);$("#answers").append(i);e[u]=e[u]||{lang:u,user:a,size:o,link:n.share_link}});var n=[];for(var r in e)if(e.hasOwnProperty(r))n.push(e[r]);n.sort(function(e,t){if(e.lang>t.lang)return 1;if(e.lang<t.lang)return-1;return 0});for(var i=0;i<n.length;++i){var s=$("#language-template").html();var r=n[i];s=s.replace("{{LANGUAGE}}",r.lang).replace("{{NAME}}",r.user).replace("{{SIZE}}",r.size).replace("{{LINK}}",r.link);s=$(s);$("#languages").append(s)}}var QUESTION_ID=43048;var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe";var answers=[],page=1;getAnswers();var SIZE_REG=/\d+(?=[^\d&]*(?:<(?:s>[^&]*<\/s>|[^&]+>)[^\d&]*)*$)/;var NUMBER_REG=/\d+/;var LANGUAGE_REG=/^#*\s*([^,]+)/
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src=https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js></script><link rel=stylesheet type=text/css href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"><div id=answer-list><h2>Leaderboard</h2><table class=answer-list><thead><tr><td></td><td>Author<td>Language<td>Size<tbody id=answers></table></div><div id=language-list><h2>Winners by Language</h2><table class=language-list><thead><tr><td>Language<td>User<td>Score<tbody id=languages></table></div><table style=display:none><tbody id=answer-template><tr><td>{{PLACE}}</td><td>{{NAME}}<td>{{LANGUAGE}}<td>{{SIZE}}<td><a href={{LINK}}>Link</a></table><table style=display:none><tbody id=language-template><tr><td>{{LANGUAGE}}<td>{{NAME}}<td>{{SIZE}}<td><a href={{LINK}}>Link</a></table>
Jawaban:
GolfScript, 9 byte
The jawaban asli (dibs!) Juga di GolfScript, yang adalah bagaimana saya tahu itu adalah sintaksis berlaku. Saya menguji pada http://golfscript.apphb.com/ .
Saya membenci penggunaan bahasa yang dirancang untuk bermain golf, tetapi saya harus memenangkan tantangan ini, jadi saya mengkhianati nilai-nilai saya dengan memposting jawaban ini. Saya tidak tahu apa yang dilakukan sebagian besar karakter dalam bahasa ini, tetapi saya pernah secara tidak sengaja belajar, ketika membaca jawaban GolfScript, bahwa
}
komentar yang tidak tertandingi keluar dari sisa program. Ini memungkinkan saya untuk mengabaikan sisa karakter.sumber
Befunge-93, 2085 byte
Saya pikir saya akan bersenang-senang dan menggunakan meta dengan mendaur ulang yang terbaik dari daur ulang . Tidak ada penghargaan untuk singkatnya di sini.
Ini sebenarnya juga merupakan polyglot untuk 5 bahasa: Befunge-93 , oOo Code , Pyth , Python 3 dan Ruby. Namun, karena kode asli hanya secara sintaksis valid untuk Befunge-93, saya hanya menghitungnya.
Sayangnya kode asli hanya memiliki satu pasang
[]
dan terlalu banyak.
, jadi saya tidak dapat benar-benar cocok dengan Brainfuck (karena itu Kode OOO).Catatan
Ini ternyata sangat membatasi, karena:
001111111222
, membutuhkan penggunaanord
untuk Ruby dan Python. Khususnya tidak ada5
, yang ternyata menyebalkan bagi Pyth.@
yangp
perlu digunakan untuk menempatkan@
untuk Befunge.*
berarti kita harus mengalikan dengan membagi dengan kebalikan dari angka. Menyenangkan.Befunge-93
Program Befunge adalah
tempat kami melewatkan instruksi yang tidak berguna. Kami mengkodekan setiap digit sebagai perbedaan dalam nilai-nilai ASCII antara chars, khususnya
cabf
vsa
.oOo Code
BF yang sesuai adalah
, dimana satu-satunya bagian yang relevan adalah
Pyth
Pyth hanya mengeksekusi baris pertama, jadi
Perhatikan bahwa Pyth menggunakan notasi awalan, jadi bagian pertama dari baris sebenarnya
( Catatan:
e
berarti%10
)Karena sifat Pyth, ini dicetak secara otomatis. Sisa dari baris ini adalah Pyth yang valid, tetapi ruang sebelumnya sebelum
o
menekan pencetakan otomatis.Python 3
Mayoritas kode Python dikomentari menggunakan string, terutama string tiga kutip besar di tengah. Mengabaikan beberapa string liar, kami memiliki:
Baris pertama dan terakhir valid secara sintaksis, tetapi tidak melakukan apa pun. Dua garis tengah mencetak apa yang kita butuhkan.
Rubi
Kode Ruby mirip, tetapi kami menggunakan heredoc bukan string dikutip tiga untuk mengomentari sebagian besar program. Mengabaikan beberapa string liar, kami memiliki:
Sekali lagi, baris pertama secara sintaksis valid, tetapi tidak melakukan apa-apa. Baris kedua mencetak apa yang kita butuhkan.
sumber
CJam, 12 byte
The Menguraikan Kode topik merupakan sumber yang sangat baik untuk pencetakan nomor acak. Yang ini cukup menyenangkan untuk disatukan :)
Jawaban bonus
14 byte:
19 byte:
sumber
Burung unta, 198
Saya senang mendapat jawaban Burung Unta; Saya tidak peduli berapa lama itu. : P (ini versi 0.5.0 , omong-omong)
Asli :
Yang saya ubah adalah sebagai berikut:
Membungkus semuanya selain
2 n15
di blok ({}
) yang langsung muncul (;
).Terjebak
2 n15
di akhir.2
mendorong2
,n
mendorong0
, dan15
mendorong15
, yang pada akhirnya menjadi2015
saat output.Ini benar-benar membantu saya menemukan bug:
2n15
tidak bekerja untuk beberapa alasan (mencetak215
), namun kedua2 n15
dan2n 15
pekerjaan. Saya harus mencari tahu mengapa itu ....Inilah permintaan pencarian yang saya gunakan untuk menemukan contoh kode sempurna ini:
Jawaban ini akan bekerja untuk 140, tetapi saya akan melihat apakah saya bisa menjadi lebih kecil ....
sumber
JavaScript, 26 byte
Asli :
Didaur ulang:
Ini hanya menggeser 4030 satu bit ke kanan.
sumber
CJam, 14 byte
Yang ini agak sulit, jadi saya harus mempostingnya meskipun agak panjang. Jawaban asli juga ada di CJam, jadi valid.
Jawaban asli:
Daur Ulang 2015:
Bagaimana itu bekerja
Jadi tumpukan berisi
20
dan15
yang dicetak satu demi satu, mencetak 2015Cobalah online di sini
sumber
Marbelous, 54 byte
Jawaban membosankan (54 byte)
(diikuti oleh satu ton trailing newlines hingga sama dengan 54 byte)
Jawaban Asli
Papan utama hanya menjatuhkan kelereng yang mewakili masing-masing karakter
2015
.R
danQ
papan didefinisikan, tetapi tidak pernah digunakan.Jawaban alternatif (92 byte)
Jawaban Asli
Spasi sebagai sel kosong harus diperiksa. Ini pertama mencetak
2
(0x32), kemudian mencetak0x03+0x02+0x0A=0x0F=15
sebagai desimal tiga digit (015
). Tiga baris pertama tidak melakukan apa pun.Tes jawaban di sini.
sumber
Pyth, 25
https://github.com/isaacg1/pyth
Inilah jawaban asli (juga ditulis dalam pyth). Saya tahu bahwa ini bukan jawaban yang sangat kompetitif (ada jawaban python panjang 26), tapi saya benar-benar menikmati datang dengan ini, dan saya pikir itu keluar menjadi jawaban yang agak lucu.
Penjelasan:
Pada dasarnya ini memfilter daftar dua juta angka pertama agar sama dengan 2015. Kemudian, ia memperlakukan daftar angka ini sebagai digit angka 10 MILIAR basis. Untungnya, hanya ada satu angka yang sama dengan 2015 di kisaran, sehingga Anda mendapatkan 2015 * 10.000000000 ^ 0, yang hanya 2015. Ini membutuhkan beberapa detik untuk dijalankan.
sumber
Perl, 48 byte
Jawaban Asli
sumber
Python 2, 26 byte
Diambil dari skrip python Terkecil untuk mencetak angka genap 0 hingga 100 utas. Ini mungkin solusi @FryAmTheEggman yang disinggung.
sumber
Mathematica, 60 byte
Sumber
Bagian dalam
Floor
tanda kurung hanyalah serangkaian aplikasi fungsi dari fungsi yang tidak ada (yang Mathematica tidak memiliki masalah dengan, karena model perhitungan simbolisnya). Demikian juga, hanya menulis lantai danPrint@2015
merupakan perkalian, yang juga tidak dikeluhkan oleh Mathematica. Tanpa gula sintaksis, itu akan menjadiKarena kita tidak mengasumsikan lingkungan REPL, hasil yang dievaluasi dari ini tidak pernah dicetak (yang akan menjadi
Null Floor[ggggiiimmnnoorrrstt[ee[RS[DF[IM], ad], ee], 0.22346]]
), tetapi hanya efek samping dari yangPrint
benar - benar pergi ke STDOUT.Terima kasih kepada Sp3000 untuk menghidupkan sumbernya.
sumber
> <>, 57 byte
Kode C ++ asli, dari tantangan RadioASCII :
Daur Ulang > <> (Ikan) kode:
Seperti Befunge,> <> adalah bahasa 2D berbasis stack. Eksekusi dimulai dari kiri atas dan awalnya ke kanan. Hanya baris pertama dari program yang dieksekusi, dengan cara berikut:
Sekarang pertanyaan besarnya adalah - mengapa kode C ++ valid> <>? Di> <> ada cara untuk mengubah arah aliran program (bagaimanapun, ini adalah bahasa 2D):
Ketika kode C ++ dijalankan, inisial
#
mencerminkan aliran program ke kiri. Tapi> <> adalah toroidal, jadi penunjuk instruksi membungkus, muncul dari ujung baris, bertemu>
yang mengarahkan aliran program ke kanan lagi. Pointer kemudian membungkus kembali ke#
, memantul kembali ke>
... dan dengan demikian loop tak terbatas terjadi dan kesalahan tidak pernah terjadi.sumber
Python 3, 1878 byte
Sangat panjang, tetapi tetap ingin berbagi:
Diambil dari jawaban KennyTM .
Saya melihat bahwa 2, 0, 1 dan 5 dan # dapat ditemukan dalam kode, jadi saya memindahkan beberapa karakter untuk dibuat
print(2015)
dan dapat mengomentari sisanya. Saya juga memasukkan impor PIL ke dalam komentar sehingga tidak memerlukan pustaka itu.sumber
PHP, 21 byte
Ayo coba ini lagi. Diambil dari jawaban PHP lain dari Unscramble the Source Code. Ini cukup mendasar, tetapi sejauh ini adalah program terpendek dalam bahasa non-golf. Anda dapat memverifikasinya di http://codepad.org/15EjIYAU . Kode aslinya adalah sebagai berikut:
sumber
4*2/8
;)