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>
++++++[>++++++++<-]>++.--.+.+++.
Réponses:
Souris-2002 , 4 octets.
C'est 4 octets d' ASCII pur et doux .
Dans Mouse , les lettres de l'alphabet sont initialisées aux valeurs 0-25.
!
est l'opérateur pour l'impression des entiers, donc ceci est20
ensuite imprimé14
(pas de nouvelle ligne intermittente).Il n'y a pas d' interprète disponible en ligne, mais ici vous trouverez un interprète écrit en C (nécessitant quelques modifications avant que l' on peut forcer
gcc
à le compiler) et le même interpréteur compilé pourWin32
mais qui fonctionne parfaitement sous Linux avecwine
.Ici vous pouvez trouver la version corrigée de l'interpréteur, qui compile.
la source
KE
, mais est en fait valable parce que c'est un langage d'avant 2014.Python, 52 octets
Mis à jour pour 2015 grâce à @Frg:
Passez la souris sur la version 2016:
Essayez-le en ligne!
la source
print sum(ord(c) for c in 'HAPPY NEW YEAR To you too.')
Oh, attends, j'ai un an de retard. C'est 2013.sum(map(ord,'Happy new year to you!'))
permettrait d'économiser 7 caractères.Befunge 98 -
171198 octetsSemblable à l'ancienne version, mais je me souvenais de
'
Il est intéressant de 45 2 -11 est le couplage seulement des nombres a, b , où La signification de ces ensembles est que [32126] est l'ensemble des caractères imprimables ascii et [10,15] est l'ensemble des nombres Befunge facilement accessibles. J'ai trouvé cette paire avec ce programme python :
Ou, si votre interprète prend en charge l'unicode, cela fonctionne:
Befunge 98 - 5 octets (4 caractères)
Cela fonctionne au moins sur http://www.quirkster.com/iano/js/befunge.html avec le code suivant (Befunge 93 - 6 octets / 5 caractères):
Ancienne version
calcule le nombre puis l’imprime:
Ancienne version:
Pousse les valeurs ascii pour 2014, -10. Puis imprime chacun après avoir ajouté 10.
la source
randomstuff2randomstuff0randomstuff1randomstuff4
je ne considérerais pas cela comme une solution valable.Ruby, 15 ans
Temporaire;)
Notez que la section de la question
n’a été modifié que longtemps après que j’ai posté ma réponse ...
Jan Dvorak offre une excellente alternative dans les commentaires :
Mais c'est tellement peu enthousiaste. Je préfère:
Ou même:
Et voici la ponctuation anglaise correcte:
D'accord, d'accord, je ne pouvais pas m'en empêcher:
la source
Happy = Time; Happy.new.year
Go, 2 octets (UTF-16)
Un caractère Unicode (2 octets en UTF-16, 3 octets en format UTF-8), sortie 2014 dans le cadre d'une erreur
http://ideone.com/dRgKfk
la source
Python, 26 ans
la source
0
-9
.MATLAB, Scala (4 caractères, 5 octets)
Vous pouvez tirer parti du système de types relativement faible de MATLAB (et de Scala), ici. L'astuce consiste à appliquer l'
+
opération unaire sur une chaîne composée uniquement du caractèreߞ
(du point de code UTF-8 U + 07DE ou 2014 en décimal). Cette opération convertit implicitement la chaîne en un double (en MATLAB) et en unInt
(en Scala):Nombre d'octets:
+
est ASCII et compte pour 1 octet'
est ASCII et compte pour 1 octet (mais apparaît deux fois dans l'expression)ߞ
est un caractère UTF-8 à 2 octetsTotal: 5 octets
TeX (
3226 caractères, autant d'octets)Une alternative encore plus courte (proposée par Joseph Wright ) est
XeTeX / LuaTeX (13 caractères, 14 octets)
Si XeTeX ou LuaTeX sont autorisés, l'entrée UTF-8 peut être utilisée directement (comme proposé par Joseph Wright ):
la source
\let~\number~`^^T~`^^N\bye
25 caractères / octets. Vous comptez mal à mon humble avis, il est également 25 pour votre solution.\the\year\bye
+'ߞ'
fonctionne aussi en scala (et quelques autres langues j'imagine)dc, 6 caractères
D
pousse 13 sur la pile, même si la base d'entrée est 10 initialementi
change la base d'entrée (de 13 à 13)BBC
est 2014 base 13.p
impressions.Sortie de la console:
la source
DiBBCp
(6 caractères), le reste n'est qu'un moyen de le lancer.D
commande dans la page de manuel. Qu'est ce que ça fait?Code morse, 23
;)
la source
7245 caractères dans le code; Codes de caractère zéroC’est loin d’être la réponse la plus courte publiée, mais personne n’a encore posté de réponse
Utilisation de mathématiques pures (d'accord, et d'une conversion booléenne automatique) sous R, à partir de la console R:
Imprime le nombre 2014.
T
est un synonyme prédéfini pour true dans R. Les fonctionsfloor
etexp
sont directement disponibles dans le package de base, tout comme lapi
constante. R n'a pas d'opérateur d'incrémentation, mais il est répété(x*x)
qu'il y a moins de caractères qui incrémentent et décrémentent deux fois chacun.Version originale en Javascript (72 caractères)
Pour la simple raison que j'ai pu tester sur la console et que l'absence totale d'espace est un inconvénient:
exécutez dans votre console et il imprimera le numéro 2014.
Des accessoires à xkcd (et aussi ) pour m'avoir fait penser à exp (pi):
PS Si vous pouvez raccourcir le même algorithme dans une langue différente, postez un commentaire avec celui-ci.
la source
cdd**e-.@
(postée avant la vôtre) qui ne fait pas usage de codes de caractères ni de date système. Il calcule le nombre 2014.c
,d
ete
sont les chiffres du numéro hexadécimal.a
,b
...,f
poussée (respectivement) 10,11 ... 15 donc12 * 13 * 13 - 14
est le calcul.Scala REPL
3429 caractères.Bien ok si vous voulez vraiment jouer avec des personnages, vous pouvez utiliser:
ou
qui ont respectivement 11 et 22 caractères.
la source
toInt
comme ceci:+"Happy new year to you!".sum
TestPHP, 9 octets
Cela nécessite PHP 7.1 ou inférieur. Cela fonctionnera sous PHP 7.2, mais cela entraînera un avertissement. Aucune garantie pour les versions futures.
xxd
nécessaires en raison de données binaires (il serait donc plus facile de copier et coller). Peut revenirE_NOTICE
, mais cela n'a pas vraiment d'importance, n'est-ce pas?Sinon, enregistrez ceci en utilisant le codage ISO-8859-1.
la source
echo date('Y');
?<?=date(Y);
serait de 11 caractères, et j'ai une solution à 9 caractères.C, 33 octets
la source
Mathematica, 14 caractères (ou 15 si vous comptez le bitmap comme un caractère)
TextRecognize @
la source
\d
plage. À savoir, s'il s'agit du GIF, l'en-tête lui-même est garanti en contenir.Python3.4.0b2 (0 octet)
la source
Javascript, 23 octets
Utilise la conversion en base 64
23 caractères (16 avec atob seul)
Ou
la source
MMXIV
n'a pas de caractère en commun avec2014
, la dernière fois que j'ai vérifié ...// ;)
[!+[]+!+[]]+[+[]]+[+!+[]]+[!+[]+!+[]+!+[]+!+[]]
-alert([!+[]+!+[]]+[+[]]+[+!+[]]+[!+[]+!+[]+!+[]+!+[]]);
Bien que je ne sois pas sûr que cela réponde àJoe Z
ses exigences.Perl - 10 caractères
Cette solution est une gracieuseté de BrowserUK sur PerlMonks , bien que je me sois débarrassé de la ponctuation et des espaces inutiles de la solution qu'il a publiée. C'est un bitwise "pas" sur une chaîne binaire de quatre caractères.
Les caractères affichés ci-dessus représentent les octets binaires cd: cf: ce: cb, et indiquent comment ils apparaissent dans ISO-8859-1 et ISO-8859-15.
Voici l'intégralité du script au format hexadécimal, ainsi qu'un exemple d'exécution:
Perl (sans bits forts) - 14 caractères
Ceci utilise un "ou" au niveau des bits sur les deux chaînes de quatre caractères
"RPQT"
et"````"
(c'est-à-dire quatre backticks).(Au départ, j'avais les deux chaînes inversées , ce qui nécessitait des espaces blancs
print
etRPQT
séparant les jetons. @DomHastings a fait remarquer qu'en les changeant, je pouvais enregistrer un personnage.)Perl (tricherie) - 8 caractères
Cela n’est probablement pas dans l’esprit de la concurrence, mais hdb sur PerlMonks a fait remarquer que Perl fournit une variable appelée
$0
contenant le nom du programme en cours d’exécution. Si nous sommes autorisés à nommer le fichier contenant le script "2014", il$0
sera égal à 2014.$0
contient un chiffre; nous ne pouvons donc pas l'utiliser directement, mais${...}
contenir une expression dont le résultat est 0 sera OK; par exemple:Par souci de cohérence, faisons la chose hexcat-then-perl avec ça:
Je pense que c'est de la triche, mais c'est quand même une solution intéressante, donc il vaut la peine d'être mentionné.
la source
print"````"^RPQT
. Il pourrait être possible d’utilisersay
aussi sur 5.10+ en utilisant -E au lieu de -e, mais je ne sais pas si cela entraîne une pénalité de +2 pour différents arguments de ligne de commande?say
sans pénalité.say ABCD^srrp
.Ruby, 20 ans
Explication:
bbc
est2014
en base 13. Plus court que Python. Pas aussi court que Forth.la source
p 'ߞ'.ord
pour un programme entièrement fonctionnel, à l''ߞ'.ord
intérieurirb
. Fonctionne sur 1.9+?-*?--?\v
(45 * 45 - 11) (Ruby 1.8)?.*?.-?f
(46 * 46 - 102) (Ruby 1.8 seulement encore)Powershell, 9
ߞ
( U + 07DE NKO LETTER KA ) est compté comme deux octets selon les informations de balise code-golf .[""]
renvoie le premier caractère de la chaîne (""
est converti en0
). Le unary plus opeartor (+
) convertit le caractère en entier.la source
['']
est un bon tour. J'ai l'habitude de l'utiliser[char]
mais c'est effectivement plus court :)Scala REPL - 6 caractères
(
##
est le symbole de ScalahashCode
, et la chaîne Java"?="
hache jusqu'en 2014.)Scala REPL - 4 caractères, 5 octets
Math sur notre personnage préféré unicode produit un
Int
.la source
Javascript, 18 caractères
Mise à jour: dans ES6, l'utilisation d'un littéral de modèle peut enregistrer deux caractères:
Le code ci-dessus est assez facile à comprendre en gardant à l’esprit que
btoa
la chaîne est convertie en une autre chaîne selon un ensemble de règles bien définies ( RFC 4648). ). Pour voir comment la conversion fonctionne, nous allons écrire la chaîne d'entrée "ÛMx" sous la forme d'une séquence de chiffres binaires, où chaque caractère est rendu sous la forme d'un code de caractère à 8 bits.Après avoir réorganisé les chiffres binaires de la dernière ligne en groupes de 6, nous obtenons la représentation binaire de 4 nouveaux nombres, correspondant aux index Base64 des 4 caractères de la chaîne "2014".
Selon la spécification HTML, les caractères de sortie peuvent être extraits de leurs index Base64 conformément à ce tableau: http://dev.w3.org/html5/spec-LC/webappapis.html#base64-table .
Si vous ne vous souciez pas des détails, vous pouvez laisser le navigateur faire les calculs pour vous et découvrir que "ÛMx" est le résultat d'une évaluation
atob('2014')
en Javascript.la source
alert
plus courant).alert
appel.alert
. Je me demande si les normes ont changé pour JS codegolf ou s'il s'agit simplement d'un changement adopté par Community.Encore une autre entrée GolfScript, 9 caractères imprimables
Je pense que cela est plus court que toutes les entrées imprimables de GolfScript jusqu'à présent:
( L'entrée à 7 caractères de Peter Taylor le bat, mais comprend des caractères de contrôle non imprimables.)
J'appelle cela le "c'est tellement l'année dernière!" car elle génère le nombre 2013 en 8 caractères, comme 33 × 61, puis l’incrémente d’un chiffre . ;-)
la source
C (31)
C (32)
C (30)
C (30)
la source
"%x"
Et juste et'b'*'S'
? C'est 8212 déc ou 2014 hex. Enregistre un caractère, un littéral et deux sur la chaîne de format.'b'*'S'
is 8134. La factorisation première de 8212 est 2 * 2 * 2053, donc je ne vois pas un moyen facile de la produire.8212/'b' == 'S'
:(14ème
la source
62 34 * 94 - .
Si vous ne parlez pas Forth, cela signifieprint (62 * 34 - 94)
.'ߞ .
le caractère.GolfScript, 14
Comment ça marche: ASCII se passe comme ça:
Donc, cela prend les codes ASCII de chaque caractère, en soustrait cinq et les colle dans une chaîne.
{...}%
donne un tableau des caractères d'une chaîne mappée, quand une chaîne est donnée en argument. Ainsi, il incrémente chaque caractère de 5 ()
signifie incrémente).la source
+
fin est inutile. En outre, plutôt que d’augmenter 5 fois, il suffit d’en ajouter cinq. Économies totales: 4 caractères.'-+,/'{5+}%
5
est un nombre."-+,/"_,)f+
. :) (Encore une fois, CJam aKD
.)Python, 32 caractères
Probablement possible de le réduire en utilisant le caractère Unicode 2014
ߞ
, mais je n'ai pas essayé.Quincunx note que
est plus court de trois caractères.
la source
print(ord("ߞ"))
. Cela ne semble pas fonctionner en Python 2; Python 2 ne prend probablement pas en charge l’unicode.a=ord('.');print(a*a-ord('f'))
2 caractères sont plus courts.u
à la fin de la chaîne (serait"ߞ"u
)u
pour indiquer qu'elles étaient unicode, mais en Python 3, toutes les chaînes sont automatiquement unicodeprint ord('.')**2-ord('f')
est légèrement plus courte.APL (6 octets, 4 caractères)
Ne fonctionne que cette année si.
Pourquoi ça marche:
Sans compter sur la date du système, il s'agit de 10 octets (7 caractères):
la source
⎕
), c'est censé ressembler à ça.Python
3210 octets,91 à85 (66 avecmath
importés par défaut) octets mathématiques puresJ'ai eu du plaisir à écrire ceci:
Imprime toutes les manières possibles que je peux écrire en
2014
utilisant la méthode de Bruno Le Floch (32 caractères):Mais ceci est évidemment redondant, donc si votre interprète est configuré par défaut sur utf-8, alors tout ce qu'il faut est:
Aussi, grâce à AmeliaBR (pour l'idée), j'ai fait de mon mieux pour implémenter une version mathématique pure:
la source
a,b=int(e),int(pi);c=a+a;print a**(b*c-c+b)-a*a**c-a
et vous pouvez éliminer complètement l'importation mathématique en utilisant le fait queTrue
Python 2.x est identique à l'entier 1 utilisé , ce qui la réduit à 50 caractères:o=True;a=o+o;b=a+o;c=b+o;print a**(b*c-o)-a*a**c-a
ord('ߞ')
R (20 caractères)
@popojan (il n'est pas autorisé à poster une réponse ici) a fourni la solution avec 20 caractères maximum.
Sortie:
R (22 caractères)
Utilisateur anonyme a suggéré une solution plus courte.
2014
estBBC
en base 13.pi*pi+pi
(= 13.0112) est traité par R dans ce contexte comme le nombre entier 13. Résultat:R (30 caractères)
Merci à @Tomas!
Sortie:
R (31 caractères)
Inspiré de la réponse d'AmeliaBR . Sortie:
la source
cat(a<-T+T,T-T,T/T,a^a,sep="")
(30 caractères),paste0(aT+T,T-T,T/T,a^a)
(26 caractères)paste0
n'est pas autorisée car elle contient le symbole0
. Votre solution fait 30 caractères si vous utilisezcat
.2014
dans le répertoire courant et écrirelist.files()
- 12 caractèresJava -
7775 caractères75 caractères si
print
est ajouté dans une classe avec la méthode main:Cela signifie
35*60-86
ce qui est égal à 2014la source
class a{static{System.out.println('#'*'<'-'V');}}