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>
++++++[>++++++++<-]>++.--.+.+++.
Antworten:
Mouse-2002 , 4 Bytes.
Das sind 4 Bytes reines, süßes ASCII.
In der Maus werden die Buchstaben des Alphabets mit den Werten 0-25 initialisiert.
!
ist der Operator zum Drucken von ganzen Zahlen, daher wird dieser20
dann gedruckt14
(keine intermittierende Newline).Es gibt keinen Online-Interpreter, aber hier finden Sie einen in C geschriebenen Interpreter (der einige Anpassungen benötigt, bevor
gcc
er kompiliert werden kann) und denselben kompilierten InterpreterWin32
, der jedoch unter Linux einwandfrei funktioniertwine
.Hier finden Sie die feste Version des Interpreters, der kompiliert.
quelle
KE
, ist aber tatsächlich gültig, da es eine Sprache aus der Zeit vor 2014 ist.Python, 52 Bytes
Aktualisiert für 2015 dank @Frg:
Fahren Sie mit der Maus über die Version 2016:
Probieren Sie es online!
quelle
print sum(ord(c) for c in 'HAPPY NEW YEAR To you too.')
Oh warte, ich bin ein Jahr zu spät. Das ist 2013.sum(map(ord,'Happy new year to you!'))
würde 7 Zeichen speichern.Befunge 98 -
171198 BytesÄhnlich wie die alte Version, aber ich erinnerte mich an
'
Interessanterweise ist 45 2 -11 die einzige Paarung von Zahlen a, b, wobei Die Bedeutung dieser Mengen ist, dass [32,126 ] ist die Menge der druckbaren ASCII-Zeichen und [10,15] die Menge der leicht zugänglichen Befunge-Zahlen. Ich habe dieses Paar mit diesem Python-Programm gefunden :
Wenn Ihr Interpreter Unicode unterstützt, funktioniert Folgendes:
Befunge 98 - 5 Bytes (4 Zeichen)
Es funktioniert zumindest unter http://www.quirkster.com/iano/js/befunge.html mit dem folgenden Code (Befunge 93 - 6 Byte / 5 Zeichen):
Alte Version
berechnet die Zahl und gibt sie aus:
Ältere Version:
Pusht die ASCII-Werte für 2014, -10. Anschließend wird jeweils nach dem Hinzufügen von 10 gedruckt.
quelle
randomstuff2randomstuff0randomstuff1randomstuff4
Ich würde es nicht als gültige Lösung betrachten.Rubin, 15
Befristet;)
Beachten Sie, dass der Abschnitt der Frage
wurde erst bearbeitet, nachdem ich meine Antwort gepostet hatte ...
Jan Dvorak bietet eine großartige Alternative in den Kommentaren :
Aber es ist so wenig begeistert. Ich bevorzuge:
Oder auch:
Und hier ist die korrekte englische Interpunktion:
Okay, okay, ich konnte nicht anders:
quelle
Happy = Time; Happy.new.year
Go, 2 Bytes (UTF-16)
Ein Unicode-Zeichen (2 Byte in UTF-16, 3 Byte in UTF-8), Ausgabe 2014 als Teil eines Fehlers
http://ideone.com/dRgKfk
quelle
Python, 26
quelle
0
-9
.MATLAB, Scala (4 Zeichen, 5 Bytes)
Hier können Sie das relativ schwache Typensystem von MATLAB (und Scala) ausnutzen. Der Trick besteht darin, die unäre
+
Operation auf eine Zeichenfolge anzuwenden, die nur aus dem Zeichen bestehtߞ
(UTF-8-Codepunkt U + 07DE oder 2014 in Dezimalzahl). Diese Operation konvertiert den String implizit in ein Double (in MATLAB) und in einInt
(in Scala):Byte-Count-Details:
+
ist ASCII und zählt für 1 Byte'
ist ASCII und zählt für 1 Byte (erscheint aber zweimal im Ausdruck)ߞ
ist ein 2-Byte-UTF-8-ZeichenGesamt: 5 Bytes
TeX (
3226 Zeichen (beliebig viele Bytes)Eine noch kürzere Alternative (vorgeschlagen von Joseph Wright ) ist
XeTeX / LuaTeX (13 Zeichen, 14 Bytes)
Wenn XeTeX oder LuaTeX zulässig sind, kann die UTF-8-Eingabe direkt verwendet werden (wie von Joseph Wright vorgeschlagen ):
quelle
\let~\number~`^^T~`^^N\bye
25 Zeichen / Byte. Wenn Sie meiner Meinung nach falsch zählen, sind es auch 25 für Ihre Lösung.\the\year\bye
+'ߞ'
funktioniert auch in Scala (und einigen anderen Sprachen, die ich mir vorstelle)Gleichstrom, 6 Zeichen
D
drückt 13 auf den Stack, obwohl der Eingangsradix anfangs 10 isti
Ändert den Eingaberadix (auf 13 von 10)BBC
ist 2014 Basis 13.p
druckt.Konsolenausgabe:
quelle
DiBBCp
(6 Zeichen), der Rest ist nur eine Möglichkeit, es auszuführen.D
Befehl nicht einmal in der Manpage finden. Was tut es?Morsecode, 23
;)
quelle
7245 Zeichen im Code; NullzeichencodesDies ist bei weitem nicht die kürzeste Antwort, aber bisher hat noch niemand eine Antwort veröffentlicht
Verwenden von reiner Mathematik (okay, und einer automatischen Booleschen Konvertierung) in R über die R-Konsole:
Gibt die Zahl 2014 aus. Ist
T
ein vordefiniertes Synonym für wahr in R. Die Funktionenfloor
undexp
sind ebenso wie diepi
Konstante direkt im Basispaket verfügbar . R hat keinen Inkrementierungsoperator, wiederholt(x*x)
jedoch weniger Zeichen, die zweimal inkrementiert und dekrementiert werden.Originalversion in Javascript (72 Zeichen)
Aus dem einfachen Grund, dass ich in der Konsole testen konnte und es nichts ausmacht, wenn Whitespace fehlt:
Führen Sie in Ihrer Konsole aus, und es wird die Nummer 2014 zurück gedruckt.
Requisiten an xkcd (und auch ), damit ich über exp (pi) nachdenke:
PS Wenn Sie denselben Algorithmus in einer anderen Sprache kürzer machen können, fügen Sie ihm einen Kommentar hinzu.
quelle
cdd**e-.@
(vor Ihrer gepostete) Lösung, die keine Zeichencodes oder Systemdaten verwendet. Es berechnet die Zahl 2014c
,d
unde
sind hexadezimale Zahl Ziffern.a
,b
, ...,f
push (bzw.) 10,11, ... 15 , so12 * 13 * 13 - 14
ist die Berechnung.Scala REPL
3429 Zeichen.Na gut, wenn Sie wirklich wollen, dass es mit irgendwelchen Zeichen gespielt wird, können Sie Folgendes verwenden:
oder
die jeweils 11 und 22 Zeichen haben.
quelle
toInt
:+"Happy new year to you!".sum
TestPHP, 9 Bytes
Dies erfordert PHP 7.1 oder niedriger. Es wird in PHP 7.2 funktionieren, aber es wird eine Warnung auslösen. Keine Garantie für zukünftige Versionen.
xxd
wird aufgrund von Binärdaten benötigt (daher ist das Kopieren und Einfügen einfacher). Kann zurückkehrenE_NOTICE
, aber es spielt keine Rolle, oder?Alternativ können Sie dies mit der ISO-8859-1-Codierung speichern.
quelle
echo date('Y');
?<?=date(Y);
wäre 11 Zeichen, und ich habe eine Lösung in 9 Zeichen.C 33 Bytes
quelle
Mathematica, 14 Zeichen (oder 15, wenn Sie die Bitmap als Zeichen zählen)
TextRecognize @
quelle
\d
Bereich fallen. Wenn es sich nämlich um das GIF handelt, enthält der Header selbst garantiert einige.Python3.4.0b2 (0 Bytes)
quelle
Javascript, 23 Bytes
Verwendet die Base 64-Konvertierung
23 Zeichen (16 mit atob alleine)
Oder
quelle
MMXIV
hat keine gemeinsamen Charaktere mit2014
, zuletzt habe ich nachgesehen ...// ;)
[!+[]+!+[]]+[+[]]+[+!+[]]+[!+[]+!+[]+!+[]+!+[]]
-alert([!+[]+!+[]]+[+[]]+[+!+[]]+[!+[]+!+[]+!+[]+!+[]]);
Obwohl ich nicht sicher bin, ob sie denJoe Z
Anforderungen entspricht.Perl - 10 Zeichen
Diese Lösung wurde mit freundlicher Genehmigung von BrowserUK auf PerlMonks erstellt , obwohl ich einige unnötige Satzzeichen und Leerzeichen von der von ihm veröffentlichten Lösung entfernt habe. Es ist ein bitweises "Nicht" für eine vierstellige Binärzeichenfolge.
Die oben angezeigten Zeichen stellen die binären Oktette cd: cf: ce: cb dar und entsprechen der Darstellung in ISO-8859-1 und ISO-8859-15.
Hier ist das gesamte Skript in hexadezimaler Schreibweise sowie ein Beispiel, in dem es ausgeführt wird:
Perl (ohne hohe Bits) - 14 Zeichen
Dies verwendet ein bitweises "oder" für die beiden Zeichenfolgen mit vier Zeichen
"RPQT"
und"````"
(dh vier Backticks).(Anfangs hatte ich die beiden Zeichenfolgen umgekehrt, was Leerzeichen zwischen
print
undRPQT
zum Trennen der Token erforderte . @DomHastings wies darauf hin, dass ich ein Zeichen speichern könnte, indem ich sie vertauschte.)Perl (Schummeln) - 8 Zeichen
Dies ist wahrscheinlich nicht im Sinne des Wettbewerbs, aber hdb auf PerlMonks hat darauf hingewiesen, dass Perl eine Variable namens
$0
enthält, die den Namen des aktuell ausgeführten Programms enthält. Wenn wir die Datei mit dem Skript "2014" benennen dürfen, ist$0
sie gleich 2014. Sie$0
enthält eine Ziffer, daher können wir sie nicht direkt verwenden, aber wenn${...}
ein Ausdruck mit 0 ausgewertet wird, ist dies in Ordnung. zum Beispiel:Lassen Sie uns der Konsistenz halber das Hexcat-dann-Perl-Ding damit machen:
Ich denke, das ist Betrug, aber es ist trotzdem eine interessante Lösung, die es wert ist, erwähnt zu werden.
quelle
print"````"^RPQT
. Es könnte möglich sein,say
auch auf 5.10+ -E anstelle von -e zu verwenden, aber ich weiß nicht, ob dies eine +2 Strafe für verschiedene Befehlszeilenargumente zur Folge hat.say
für keine Strafe verwenden.say ABCD^srrp
.Rubin, 20
Erläuterung:
bbc
befindet sich2014
in Basis 13. Kürzer als Python. Nicht so kurz wie Forth.quelle
p 'ߞ'.ord
für ein voll funktionsfähiges Programm,'ߞ'.ord
innenirb
. Arbeitet an 1.9+?-*?--?\v
(45 * 45 - 11) (Ruby 1.8)?.*?.-?f
(46 * 46 - 102) (nur wieder Ruby 1.8)Powershell, 9
ߞ
( U + 07DE NKO LETTER KA ) wird gemäß der Code-Golf-Tag-Information als zwei Bytes gezählt .[""]
Gibt das erste Zeichen der Zeichenfolge zurück (""
wird konvertiert in0
). Der unary plus opeartor (+
) konvertiert das Zeichen in eine Ganzzahl.quelle
['']
ist ein schöner Trick. Ich habe normalerweise verwendet,[char]
aber das ist in der Tat kürzer :)Scala REPL - 6 Zeichen
(
##
Ist die Symbolbedeutung von ScalahashCode
und der Java-String entspricht"?="
2014.)Scala REPL - 4 Zeichen, 5 Bytes
Mathe auf unserem Lieblings-Unicode-Charakter ergibt eine
Int
.quelle
Javascript, 18 Zeichen
Update: In ES6 können mit einem Vorlagenliteral zwei Zeichen gespeichert werden:
Der obige Code ist recht einfach zu verstehen, wenn man bedenkt, dass
btoa
eine Zeichenfolge gemäß einer Reihe gut definierter Regeln ( RFC 4648 ) in eine andere Zeichenfolge konvertiert wird . Um zu sehen, wie die Konvertierung funktioniert, schreiben wir die Eingabezeichenfolge "ÛMx" als Folge von Binärziffern, wobei jedes Zeichen als 8-Bit-Zeichencode dargestellt wird.Nach der Reorganisation der Binärziffern in der letzten Zeile in 6er-Gruppen erhalten wir die Binärdarstellung von 4 neuen Zahlen, die den Base64-Indizes der 4 Zeichen in der Zeichenfolge "2014" entsprechen.
Gemäß der HTML-Spezifikation können die Ausgabezeichen anhand der folgenden Tabelle aus ihren Base64-Indizes abgerufen werden: http://dev.w3.org/html5/spec-LC/webappapis.html#base64-table .
Wenn Sie sich nicht um die Details kümmern, können Sie den Browser die Berechnungen für Sie durchführen lassen und feststellen, dass "ÛMx" das Ergebnis der Auswertung
atob('2014')
in Javascript ist.quelle
alert
am häufigsten).alert
Anruf.alert
. Ich frage mich, ob sich die Standards für JS Codegolf geändert haben oder ob es sich nur um eine Änderung handelt, die von der Community übernommen wurde.Noch ein GolfScript-Eintrag, 9 druckbare Zeichen
Ich glaube, das ist kürzer als alle druckbaren GolfScript-Einträge:
( Peter Taylors 7- Zeichen -Eintrag schlägt es, enthält aber nicht druckbare Steuerzeichen.)
Ich nenne das das "das ist so letztes Jahr!" Eintrag, denn was es tatsächlich tut, ist die Zahl 2013 in 8 Zeichen, als 33 × 61, zu generieren und dann um eins zu erhöhen. ;-)
quelle
C (31)
C (32)
C (30)
C (30)
quelle
"%x"
und'b'*'S'
? Das ist 8212 dez oder 2014 hex. Speichert ein Zeichen für ein Literal und zwei Zeichen für eine Formatzeichenfolge.'b'*'S'
ist 8134. Die Hauptfaktorisierung von 8212 ist 2 * 2 * 2053, daher sehe ich keinen einfachen Weg, sie herzustellen.8212/'b' == 'S'
:(Viertens, 14
quelle
62 34 * 94 - .
Wenn du nicht weiter sprichst, bedeutet dasprint (62 * 34 - 94)
.'ߞ .
das Zeichen aus.GolfScript, 14
So funktioniert es: ASCII geht so:
Dies nimmt also die ASCII-Codes jedes Zeichens, subtrahiert fünf und fügt sie in eine Zeichenfolge ein.
{...}%
Gibt ein Array der Zeichen einer Zeichenfolge zurück, die zugeordnet sind, wenn eine Zeichenfolge als Argument angegeben wird. So erhöht es jedes Zeichen um 5 ()
bedeutet Inkrement).quelle
+
am Ende ist unnötig. Anstatt fünfmal zu erhöhen, addieren Sie einfach fünf. Gesamteinsparung: 4 Zeichen.'-+,/'{5+}%
5
ist eine Zahl."-+,/"_,)f+
. :) (Andererseits hat CJamKD
.)Python, 32 Zeichen
Wahrscheinlich ist es möglich, es mit dem 2014. Unicode-Zeichen zu reduzieren
ߞ
, aber ich habe es nicht versucht.Quincunx merkt das an
ist um drei Zeichen kürzer.
quelle
print(ord("ߞ"))
. Es scheint nicht in Python 2 zu funktionieren; Python 2 unterstützt wahrscheinlich keinen Unicode.a=ord('.');print(a*a-ord('f'))
2 Zeichen kürzer.u
am Ende der Zeichenfolge anfügen (wäre"ߞ"u
)u
zu sagen, dass sie Unicode waren, in Python 3 sind jedoch alle Zeichenfolgen automatisch Unicodeprint ord('.')**2-ord('f')
etwas kürzer.APL (6 Bytes, 4 Zeichen)
Funktioniert allerdings nur in diesem Jahr.
Warum es funktioniert:
Ohne auf das Systemdatum angewiesen zu sein, sind es 10 Bytes (7 Zeichen):
quelle
⎕
) und soll so aussehen.Python
3210 Bytes,9185 (66 mitmath
standardmäßig importierten) Bytes reine MathematikHatte ein bisschen Spaß beim Schreiben:
Druckt alle möglichen Schreibweisen
2014
nach Bruno Le Floch (32 Zeichen):Dies ist jedoch offensichtlich redundant. Wenn Ihr Interpreter also standardmäßig auf utf-8 eingestellt ist, ist Folgendes erforderlich:
Dank AmeliaBR (für die Idee) habe ich mein Bestes gegeben, um eine reine Mathematikversion zu implementieren:
quelle
a,b=int(e),int(pi);c=a+a;print a**(b*c-c+b)-a*a**c-a
, und Sie können , indem sie sich die Tatsache zunutze , die Mathematik Import völlig auszuschließen , dassTrue
in Python 2.x auf die ganze Zahl 1 im Betrieb identisch ist, es bis zu 50 Zeichen zu bringen:o=True;a=o+o;b=a+o;c=b+o;print a**(b*c-o)-a*a**c-a
ord('ߞ')
R (20 Zeichen)
@popojan (er darf hier noch keine Antwort schreiben) hat die Lösung innerhalb von 20 Zeichen bereitgestellt.
Ausgabe:
R (22 Zeichen)
Anonymer Benutzer hat kürzere Lösung vorgeschlagen.
2014
istBBC
in der Basis 13.pi*pi+pi
(= 13.0112) wird in diesem Zusammenhang von R als ganze Zahl 13 behandelt.R (30 Zeichen)
Vielen Dank an @Tomas!
Ausgabe:
R (31 Zeichen)
Inspiriert von der Antwort von AmeliaBR . Ausgabe:
quelle
cat(a<-T+T,T-T,T/T,a^a,sep="")
(30 Zeichen),paste0(aT+T,T-T,T/T,a^a)
(26 Zeichen)paste0
ist nicht erlaubt, da sie das Symbol enthält0
. Ihre Lösung enthält 30 Zeichen, wenn Sie verwendencat
.2014
im aktuellen Verzeichnis erstellen und schreibenlist.files()
- 12 ZeichenJava -
7775 Zeichen75 Zeichen, wenn
print
in einer Klasse mit der Hauptmethode hinzugefügt wird:Das heißt,
35*60-86
das ist gleich 2014quelle
class a{static{System.out.println('#'*'<'-'V');}}