var QUESTION_ID=17005,OVERRIDE_USER=7110;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
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><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>
++++++[>++++++++<-]>++.--.+.+++.
Jawaban:
Mouse-2002 , 4 byte.
Itu 4 byte ASCII murni dan manis .
Di Mouse , huruf-huruf alfabet diinisialisasi dengan nilai 0-25.
!
adalah operator untuk bilangan bulat pencetakan, sehingga ini cetakan20
kemudian14
(tidak ada baris intermiten).Tidak ada penerjemah online yang tersedia, tetapi di sini Anda akan menemukan penerjemah yang ditulis dalam bahasa C (perlu beberapa penyesuaian sebelum seseorang dapat memaksa
gcc
untuk mengkompilasinya) dan penerjemah yang dikompilasi yang sama untukWin32
tetapi yang bekerja dengan baik di Linuxwine
.Di sini Anda dapat menemukan versi penerjemah tetap, yang dikompilasi.
sumber
KE
, tetapi sebenarnya valid karena merupakan bahasa dari sebelum 2014.Python, 52 byte
Diperbarui untuk 2015 berkat @Frg:
Arahkan kursor ke versi 2016:
Cobalah online!
sumber
print sum(ord(c) for c in 'HAPPY NEW YEAR To you too.')
Oh, tunggu, aku terlambat satu tahun. Itu tahun 2013.sum(map(ord,'Happy new year to you!'))
akan menghemat 7 karakter.Befunge 98 -
171198 byteMirip dengan versi lama, tapi saya ingat
'
Menariknya, 45 2 -11 adalah satu-satunya pasangan angka a, b di mana Pentingnya set tersebut adalah bahwa [32.126] adalah himpunan karakter ascii yang dapat dicetak dan [10,15] adalah himpunan nomor Befunge yang mudah diakses. Saya menemukan pasangan itu dengan program python ini :
Atau, jika penerjemah Anda mendukung unicode, maka ini berfungsi:
Befunge 98 - 5 byte (4 karakter)
Setidaknya berfungsi di http://www.quirkster.com/iano/js/befunge.html dengan kode berikut (Befunge 93 - 6 byte / 5 karakter):
Versi lama
menghitung nomor, lalu mencetaknya:
Versi yang lebih lama:
Mendorong nilai ascii untuk 2014, -10. Kemudian cetak masing-masing setelah menambahkan 10 ke dalamnya.
sumber
randomstuff2randomstuff0randomstuff1randomstuff4
Saya tidak akan menganggapnya sebagai solusi yang valid.Ruby, 15
Sementara;)
Perhatikan bahwa bagian dari pertanyaan
tidak diedit sampai lama setelah saya memposting jawaban saya ...
Jan Dvorak menawarkan alternatif yang bagus di komentar :
Tapi itu sangat antusias. Aku lebih memilih:
Atau bahkan:
Dan ini tanda baca bahasa Inggris yang benar:
Oke oke, saya tidak bisa menahannya:
sumber
Happy = Time; Happy.new.year
Go, 2 byte (UTF-16)
Satu karakter unicode (2 byte dalam UTF-16, 3 byte dalam format UTF-8), menghasilkan 2014 sebagai bagian dari kesalahan
http://ideone.com/dRgKfk
sumber
Python, 26
sumber
0
-9
.MATLAB, Scala (4 karakter, 5 byte)
Anda dapat memanfaatkan sistem tipe MATLAB (dan Scala) yang relatif lemah, di sini. Caranya adalah dengan menerapkan
+
operasi unary pada string yang hanya terdiri dari karakterߞ
(dari UTF-8 kode titik U + 07DE, atau 2014 dalam desimal). Operasi ini secara implisit mengubah string menjadi dobel (dalam MATLAB) dan menjadiInt
(dalam Scala):Rincian byte-hitung:
+
adalah ASCII dan dihitung untuk 1 byte'
adalah ASCII dan dihitung untuk 1 byte (tetapi muncul dua kali dalam ekspresi)ߞ
adalah karakter 2-byte UTF-8Total: 5 byte
TeX (
3226 karakter, sebanyak byte)Alternatif yang bahkan lebih pendek (diusulkan oleh Joseph Wright ) adalah
XeTeX / LuaTeX (13 karakter, 14 byte)
Jika XeTeX atau LuaTeX diizinkan, input UTF-8 dapat digunakan secara langsung (seperti yang diusulkan oleh Joseph Wright ):
sumber
\let~\number~`^^T~`^^N\bye
25 karakter / byte. Anda IMHO menghitung salah, itu 25 untuk solusi Anda juga.\the\year\bye
+'ߞ'
juga bekerja di Scala (dan beberapa bahasa lain yang saya bayangkan)dc, 6 karakter
D
menekan 13 pada stack, bahkan input radix awalnya 10i
mengubah input radix (menjadi 13 dari 10)BBC
adalah 2014 base 13.p
cetakan.Output konsol:
sumber
DiBBCp
(6 karakter), sisanya hanya cara untuk menjalankannya.D
perintah di halaman manual. Apa fungsinya? Sudahlah ... D adalah hex untuk 13.Kode Morse, 23
;)
sumber
7245 karakter dalam kode; Kode karakter nolIni jauh dari jawaban terpendek yang diposting, tetapi belum ada yang mengirim jawaban itu
Menggunakan matematika murni (oke, dan konversi boolean otomatis) di R, dari konsol R:
Mencetak nomor 2014.
T
adalah sinonim yang telah ditentukan sebelumnya untuk true dalam R.floor
Danexp
fungsi langsung tersedia dalam paket dasar, sepertipi
konstanta. R tidak memiliki operator kenaikan, tetapi mengulangi(x*x)
ternyata menjadi lebih sedikit karakter yang melakukan kenaikan dan penurunan masing-masing dua kali.Versi asli dalam Javascript (72 karakter)
Untuk alasan sederhana yang bisa saya uji di konsol, dan itu tidak masalah kurangnya ruang kosong:
dijalankan di konsol Anda dan itu akan mencetak kembali nomor 2014.
Alat peraga untuk xkcd (dan juga ) untuk membuat saya berpikir tentang exp (pi):
NB. Jika Anda dapat membuat algoritme yang sama lebih pendek dalam bahasa yang berbeda, poskan komentar dengannya.
sumber
cdd**e-.@
(diposting sebelum Anda) yang tidak menggunakan kode karakter atau tanggal sistem. Ini menghitung angka 2014c
.d
,, dane
merupakan digit angka heksadesimal.a
,,b
...,f
tekan (masing-masing) 10,11, ... 15 begitu12 * 13 * 13 - 14
juga perhitungannya.Scala REPL
3429 karakter.Baiklah ok jika Anda benar-benar ingin golf dengan karakter apa pun, Anda dapat menggunakan:
atau
yang masing-masing memiliki 11 dan 22 karakter.
sumber
toInt
seperti ini:+"Happy new year to you!".sum
TesPHP, 9 byte
Ini membutuhkan PHP 7.1 atau lebih rendah. Ini akan bekerja di PHP 7.2, tetapi akan menghasilkan peringatan. Tidak ada jaminan untuk versi masa depan.
xxd
diperlukan karena data biner (jadi menyalin dan menempelkannya akan lebih mudah). Mungkin kembaliE_NOTICE
, tapi itu tidak masalah, kan?Atau, simpan ini menggunakan pengkodean ISO-8859-1.
sumber
echo date('Y');
?<?=date(Y);
akan ada 11 karakter, dan saya punya solusi dalam 9 karakter.C, 33 byte
sumber
Mathematica, 14 karakter (atau 15 jika Anda menghitung bitmap sebagai karakter)
TextRecognize @
sumber
\d
jangkauan. Yaitu, jika itu GIF, maka tajuk itu sendiri dijamin mengandung beberapa.Python3.4.0b2 (0 byte)
sumber
Javascript, 23 byte
Menggunakan Konversi Basis 64
23 karakter (16 dengan atob dengan sendirinya)
Atau
sumber
MMXIV
tidak memiliki karakter yang sama dengan2014
, terakhir saya periksa ...// ;)
[!+[]+!+[]]+[+[]]+[+!+[]]+[!+[]+!+[]+!+[]+!+[]]
-alert([!+[]+!+[]]+[+[]]+[+!+[]]+[!+[]+!+[]+!+[]+!+[]]);
Meskipun saya tidak yakin itu memenuhiJoe Z
persyaratan.Perl - 10 karakter
Solusi ini adalah milik BrowserUK pada PerlMonks , meskipun saya telah memotong beberapa tanda baca dan spasi yang tidak perlu dari solusi yang ia posting. Ini agak "tidak" pada string biner empat karakter.
Karakter yang ditampilkan di atas mewakili oktet biner cd: cf: ce: cb, dan bagaimana mereka muncul di ISO-8859-1 dan ISO-8859-15.
Berikut ini seluruh skrip dalam hex, plus contoh menjalankannya:
Perl (tanpa bit tinggi) - 14 karakter
Ini menggunakan bitwise "atau" pada dua string empat karakter
"RPQT"
dan"````"
(yaitu, empat backticks).(Awalnya saya memiliki dua string sebaliknya, yang membutuhkan spasi putih di antara
print
danRPQT
untuk memisahkan token. @DomHastings menunjukkan bahwa dengan mengubah mereka, saya bisa menyelamatkan karakter.)Perl (curang) - 8 karakter
Ini mungkin bukan dalam semangat kompetisi, tetapi hdb pada PerlMonks telah menunjukkan bahwa Perl menyediakan variabel yang disebut
$0
yang berisi nama program saat ini sedang dieksekusi. Jika kami diizinkan memberi nama file yang berisi skrip "2014", maka$0
akan sama dengan 2014.$0
berisi angka, jadi kami tidak dapat menggunakannya secara langsung, tetapi${...}
berisi ekspresi yang bernilai 0 akan baik-baik saja; sebagai contoh:Untuk konsistensi, mari kita lakukan hexcat-then-perl dengan itu:
Saya pikir ini curang, tapi tetap saja ini solusi yang menarik, jadi layak disebut.
sumber
print"````"^RPQT
. Mungkin juga bisa digunakansay
pada 5.10+ menggunakan -E bukannya -e, tapi saya tidak tahu apakah itu menimbulkan penalti +2 untuk args baris perintah yang berbeda?say
tanpa penalti.say ABCD^srrp
.Ruby, 20
Penjelasan:
bbc
ada2014
di basis 13. Lebih pendek dari Python. Tidak sependek Keempat.sumber
p 'ߞ'.ord
untuk program yang berfungsi penuh,'ߞ'.ord
di dalamnyairb
. Bekerja pada 1,9+?-*?--?\v
(45 * 45 - 11) (Ruby 1.8)?.*?.-?f
(46 * 46 - 102) (Hanya Ruby 1.8 lagi)Powershell, 9
ߞ
( U + 07DE NKO LETTER KA ) dihitung sebagai dua byte sesuai dengan info tag kode-golf .[""]
mengembalikan karakter pertama dari string (""
dikonversi ke0
). Une plus opeartor (+
) mengubah karakter menjadi integer.sumber
['']
adalah trik yang bagus. Saya biasanya menggunakan[char]
tetapi itu memang lebih pendek :)Scala REPL - 6 karakter
(
##
adalah makna simbol ScalahashCode
, dan"?="
hash string Java hingga 2014.)Scala REPL - 4 karakter, 5 byte
Matematika pada karakter unicode favorit kami menghasilkan
Int
.sumber
Javascript, 18 karakter
Pembaruan: di ES6, menggunakan templat literal dapat menyimpan dua karakter:
Kode di atas cukup mudah dipahami dengan mengingat bahwa
btoa
mengubah string menjadi string lain sesuai dengan seperangkat aturan yang terdefinisi dengan baik ( RFC 4648 ). Untuk melihat cara kerja konversi, kita akan menulis string input "ÛMx" sebagai urutan digit biner, di mana setiap karakter dirender sebagai kode karakter 8-bitnya.Setelah mengatur ulang angka biner pada baris terakhir dalam grup 6, kita mendapatkan representasi biner dari 4 angka baru, sesuai dengan indeks Base64 dari 4 karakter dalam string "2014".
Sesuai spesifikasi HTML, karakter keluaran dapat diambil dari indeks Base64 mereka sesuai dengan tabel ini: http://dev.w3.org/html5/spec-LC/webappapis.html#base64-table .
Jika Anda tidak peduli dengan detailnya, Anda dapat membiarkan browser melakukan perhitungan untuk Anda dan mengetahui bahwa "ÛMx" adalah hasil dari evaluasi
atob('2014')
dalam Javascript.sumber
alert
paling umum).alert
panggilan.alert
. Saya bertanya-tanya apakah standar telah berubah untuk JS codegolf atau apakah itu hanya perubahan yang diadopsi oleh Komunitas.Namun entri GolfScript lain, 9 karakter yang dapat dicetak
Saya percaya ini lebih pendek daripada entri GolfScript yang dapat dicetak sejauh ini:
( Entri 7-char Peter Taylor mengalahkannya, tetapi termasuk karakter kontrol yang tidak dapat dicetak.)
Saya menyebutnya "itu begitu tahun lalu!" entri, karena apa yang sebenarnya dilakukannya adalah menghasilkan angka 2013 dalam 8 karakter, seperti 33 × 61, dan kemudian menambahkannya dengan satu. ;-)
sumber
C (31)
C (32)
C (30)
C (30)
sumber
"%x"
dan'b'*'S'
? Itu 8212 des atau 2014 hex. Menghemat satu karakter char satu literal dan dua di string format.'b'*'S'
adalah 8134. Faktorisasi utama 8212 adalah 2 * 2 * 2053, jadi saya tidak melihat cara mudah untuk memproduksinya.8212/'b' == 'S'
:(Keempat, 14
sumber
62 34 * 94 - .
Jika Anda tidak berbicara Forth, ini berartiprint (62 * 34 - 94)
.'ߞ .
Mencetak karakter.GolfScript, 14
Cara kerjanya: ASCII berjalan seperti ini:
Jadi, ini mengambil kode ASCII dari setiap karakter, mengurangi lima, dan menempelkannya dalam sebuah string.
{...}%
menghasilkan array karakter string yang dipetakan, saat diberi string sebagai argumen. Jadi, itu menambah setiap karakter dengan 5 ()
berarti kenaikan).sumber
+
akhirnya tidak perlu. Selain itu, daripada menambah 5 kali, tambahkan saja lima. Total penghematan: 4 karakter.'-+,/'{5+}%
5
adalah angka."-+,/"_,)f+
. :) (Kemudian lagi, CJam memilikiKD
.)Python, 32 karakter
Mungkin mungkin untuk menguranginya menggunakan char Unicode 2014
ߞ
, tetapi saya tidak mencoba.Quincunx mencatat itu
lebih pendek dengan tiga karakter.
sumber
print(ord("ߞ"))
. Tampaknya tidak berfungsi di Python 2; Python 2 mungkin tidak mendukung unicode.a=ord('.');print(a*a-ord('f'))
adalah 2 karakter lebih pendek.u
pada akhir string (akan"ߞ"u
)u
mengatakan bahwa mereka unicode, tetapi dalam Python 3, semua string secara otomatis unicodeprint ord('.')**2-ord('f')
sedikit lebih pendek.APL (6 byte, 4 karakter)
Hanya bekerja tahun ini.
Mengapa ini bekerja:
Tanpa mengandalkan tanggal sistem, ini 10 byte (7 karakter):
sumber
⎕
), seharusnya terlihat seperti itu.Python
3210 byte,9185 (66 denganmath
impor secara default) byte murni matematikaBersenang-senang menulis ini:
Mencetak semua cara yang bisa saya tulis
2014
menggunakan metode Bruno Le Floch (32 karakter):Tetapi ini jelas berlebihan, jadi jika penerjemah Anda diatur ke utf-8 secara default, maka yang diperlukan hanyalah:
Juga terima kasih AmeliaBR (untuk idenya), saya mencoba yang terbaik untuk mengimplementasikan versi matematika murni:
sumber
a,b=int(e),int(pi);c=a+a;print a**(b*c-c+b)-a*a**c-a
dan Anda dapat menghilangkan impor matematika sama sekali dengan memanfaatkan fakta bahwaTrue
dalam Python 2.x identik dengan integer 1 yang sedang beroperasi, membawanya ke 50 karakter:o=True;a=o+o;b=a+o;c=b+o;print a**(b*c-o)-a*a**c-a
ord('ߞ')
R (20 karakter)
@popojan (dia belum diizinkan mengirim jawaban di sini) telah memberikan solusi dalam 20 karakter.
Keluaran:
R (22 karakter)
Pengguna anonim menyarankan solusi yang lebih pendek.
2014
adaBBC
di basis 13.pi*pi+pi
(= 13.0112) diperlakukan oleh R dalam konteks ini sebagai bilangan bulat 13. Output:R (30 karakter)
Terima kasih kepada @Tomas!
Keluaran:
R (31 karakter)
Terinspirasi dari jawaban oleh AmeliaBR . Keluaran:
sumber
cat(a<-T+T,T-T,T/T,a^a,sep="")
(30 karakter),paste0(aT+T,T-T,T/T,a^a)
(26 karakter)paste0
ini tidak diizinkan, karena mengandung simbol0
. Solusi Anda menghasilkan 30 karakter jika menggunakancat
.2014
di direktori saat ini dan tulislist.files()
- 12 karakterJawa -
7775 karakter75 karakter jika
print
ditambahkan dalam kelas dengan metode utama:Artinya
35*60-86
sama dengan 2014sumber
class a{static{System.out.println('#'*'<'-'V');}}