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>
++++++[>++++++++<-]>++.--.+.+++.
Respuestas:
Ratón-2002 , 4 bytes.
Eso es 4 bytes de puro, dulce ASCII.
En Mouse , las letras del alfabeto se inicializan a los valores 0-25.
!
es el operador para imprimir enteros, por lo tanto, esto imprime20
entonces14
(no hay nueva línea intermitente).No hay un intérprete en línea disponible, pero aquí encontrará un intérprete escrito en C (que necesita algunos ajustes antes de poder obligarlo
gcc
a compilarlo) y el mismo intérprete compiladoWin32
pero que funciona perfectamente en Linuxwine
.Aquí puede encontrar la versión fija del intérprete, que compila.
fuente
KE
, pero en realidad es válido porque es un idioma anterior a 2014.Python, 52 bytes
Actualizado para 2015 gracias a @Frg:
Pase el mouse para ver la versión 2016:
Pruébalo en línea!
fuente
print sum(ord(c) for c in 'HAPPY NEW YEAR To you too.')
Oh espera, llego un año tarde. Eso es 2013.sum(map(ord,'Happy new year to you!'))
ahorraría 7 caracteres.Befunge 98 -
171198 bytesSimilar a la versión anterior, pero me acordé de
'
Curiosamente, 45 2 -11 es el único par de números a, b donde La importancia de esos conjuntos es que [32,126] es el conjunto de caracteres ascii imprimibles y [10,15] es el conjunto de números Befunge fácilmente accesibles. Encontré ese par coneste programa de Python:
O, si su intérprete es compatible con Unicode, entonces esto funciona:
Befunge 98 - 5 bytes (4 caracteres)
Al menos funciona en http://www.quirkster.com/iano/js/befunge.html con el siguiente código (Befunge 93 - 6 bytes / 5 caracteres):
Versión antigua
calcula el número, luego lo imprime:
Versión antigua:
Empuja los valores ASCII para 2014, -10. Luego imprime cada uno después de agregarle 10.
fuente
randomstuff2randomstuff0randomstuff1randomstuff4
no lo consideraría una solución válida.Ruby, 15
Temporal;)
Tenga en cuenta que la sección de la pregunta
no fue editado hasta mucho después de que publiqué mi respuesta ...
Jan Dvorak ofrece una gran alternativa en los comentarios :
Pero es muy poco entusiasta. Yo prefiero:
O incluso:
Y aquí está la puntuación correcta en inglés:
Vale, vale, no pude evitarlo:
fuente
Happy = Time; Happy.new.year
Ir, 2 bytes (UTF-16)
Un carácter unicode (2 bytes en UTF-16, 3 bytes en formato UTF-8), salida 2014 como parte de un error
http://ideone.com/dRgKfk
fuente
Python, 26
fuente
0
-9
.MATLAB, Scala (4 caracteres, 5 bytes)
Puede aprovechar el sistema de tipos relativamente débil de MATLAB (y Scala), aquí. El truco consiste en aplicar la
+
operación unaria en una cadena compuesta solo por el carácterߞ
(del punto de código UTF-8 U + 07DE o 2014 en decimal). Esta operación convierte implícitamente la cadena en un doble (en MATLAB) y en unInt
(en Scala):Detalles de conteo de bytes:
+
es ASCII y cuenta para 1 byte'
es ASCII y cuenta para 1 byte (pero aparece dos veces en la expresión)ߞ
es un carácter UTF-8 de 2 bytesTotal: 5 bytes
TeX (
3226 caracteres, tantos bytes)Una alternativa aún más corta (propuesta por Joseph Wright ) es
XeTeX / LuaTeX (13 caracteres, 14 bytes)
Si se permiten XeTeX o LuaTeX, la entrada UTF-8 se puede usar directamente (como lo propuso Joseph Wright ):
fuente
\let~\number~`^^T~`^^N\bye
25 caracteres / bytes. En mi humilde opinión, cuenta mal, es 25 para su solución también.\the\year\bye
+'ߞ'
También trabaja en Scala (y algunos otros idiomas que se imaginan)dc, 6 caracteres
D
empuja 13 en la pila, incluso aunque la raíz de entrada sea 10 inicialmentei
cambia la raíz de entrada (a 13 de 10)BBC
es 2014 base 13.p
huellas dactilares.Salida de consola:
fuente
DiBBCp
(6 caracteres), el resto es solo una forma de ejecutarlo.D
comando en la página del manual. ¿Qué hace? No importa ... D es hexadecimal para 13.Código Morse, 23
;)
fuente
7245 caracteres en el código; Códigos de caracteres ceroEsto está lejos de ser la respuesta más corta publicada, pero nadie ha publicado aún una respuesta que
Usando matemática pura (está bien, y una conversión booleana automática) en R, desde la consola R:
Imprime el número 2014.
T
es un sinónimo predefinido para verdadero en R. Las funcionesfloor
yexp
están disponibles directamente en el paquete base, al igual que lapi
constante. R no tiene un operador de incremento, pero la repetición(x*x)
resultó ser menos caracteres que el incremento y decremento dos veces cada uno.Versión original en Javascript (72 caracteres)
Por la simple razón de que podría probar en la consola, y no le importa la falta total de espacios en blanco:
ejecute en su consola e imprimirá el número 2014.
Apoyos para xkcd (y también ) para hacerme pensar en exp (pi):
PD: Si puede acortar el mismo algoritmo en un idioma diferente, publique un comentario con él.
fuente
cdd**e-.@
(publicada antes que la suya) que no utiliza códigos de caracteres ni la fecha del sistema. Calcula el número 2014c
. ,,d
ye
son dígitos numéricos hexadecimales.a
,b
, ...,f
empuje (respectivamente) 10,11, 15 ... así que12 * 13 * 13 - 14
es el cálculo.Scala REPL
3429 caracteres.Bueno, si realmente quieres jugar golf con cualquier carácter, puedes usar:
o
que tienen 11 y 22 caracteres respectivamente.
fuente
toInt
esta manera:+"Happy new year to you!".sum
PruebaPHP, 9 bytes
Esto requiere PHP 7.1 o inferior. Funcionará en PHP 7.2, pero generará una advertencia. No hay garantías para ninguna versión futura.
xxd
necesario debido a los datos binarios (por lo que copiar y pegar sería más fácil). Puede volverE_NOTICE
, pero realmente no importa, ¿verdad?Alternativamente, guarde esto usando la codificación ISO-8859-1.
fuente
echo date('Y');
?<?=date(Y);
serían 11 caracteres, y tengo solución en 9 caracteres.C, 33 bytes
fuente
Mathematica, 14 caracteres (o 15 si cuenta el mapa de bits como un carácter)
TextRecognize @
fuente
\d
rango. Es decir, si se trata del GIF, se garantiza que el encabezado en sí mismo contenga algunos.Python3.4.0b2 (0 bytes)
fuente
Javascript, 23 bytes
Utiliza la conversión de base 64
23 caracteres (16 con atob solo)
O
fuente
MMXIV
no tiene caracteres en común2014
, la última vez que lo verifiqué ...// ;)
[!+[]+!+[]]+[+[]]+[+!+[]]+[!+[]+!+[]+!+[]+!+[]]
-alert([!+[]+!+[]]+[+[]]+[+!+[]]+[!+[]+!+[]+!+[]+!+[]]);
Aunque no estoy seguro de que cumpla conJoe Z
los requisitos.Perl - 10 caracteres
Esta solución es cortesía de BrowserUK en PerlMonks , aunque eliminé algunos signos de puntuación y espacios en blanco innecesarios de la solución que publicó. Es un "no" bit a bit en una cadena binaria de cuatro caracteres.
Los caracteres que se muestran arriba representan los octetos binarios cd: cf: ce: cb, y son como aparecen en ISO-8859-1 e ISO-8859-15.
Aquí está el script completo en hexadecimal, más un ejemplo ejecutándolo:
Perl (sin bits altos) - 14 caracteres
Utiliza un "o" bit a bit en las dos cadenas de cuatro caracteres
"RPQT"
y"````"
(es decir, cuatro backticks).(Inicialmente tenía las dos cadenas al revés, lo que requería espacios en blanco entre
print
yRPQT
para separar las fichas. @DomHastings señaló que al cambiarlas podría salvar un personaje).Perl (trampa) - 8 personajes
Probablemente esto no esté dentro del espíritu de la competencia, pero hdb en PerlMonks ha señalado que Perl proporciona una variable llamada
$0
que contiene el nombre del programa actual que se está ejecutando. Si se nos permite nombrar el archivo que contiene el script "2014", entonces$0
será igual a 2014.$0
contiene un dígito, por lo que no podemos usarlo directamente, pero${...}
contener una expresión que evalúe a 0 estará bien; por ejemplo:Por coherencia, hagamos lo hexcat-then-perl con eso:
Creo que esto es trampa, pero es una solución interesante, así que vale la pena mencionarlo.
fuente
print"````"^RPQT
. Podría ser posible usarsay
también en 5.10+ usando -E en lugar de -e, pero no sé si eso incurre en una penalización de +2 por diferentes argumentos de línea de comando.say
sin penalización.say ABCD^srrp
.Rubí, 20
Explicación:
bbc
está2014
en la base 13. Más corta que Python. No tan corto como Forth.fuente
p 'ߞ'.ord
para un programa completamente funcional,'ߞ'.ord
dentroirb
. Funciona en 1.9+?-*?--?\v
(45 * 45 - 11) (Ruby 1.8)?.*?.-?f
(46 *Powershell, 9
ߞ
( U + 07DE NKO LETTER KA ) se cuenta como dos bytes de acuerdo con la información de la etiqueta de código de golf .[""]
devuelve el primer carácter de la cadena (""
se convierte a0
). El unario más opeartor (+
) convierte el carácter en un entero.fuente
['']
es un buen truco. Yo solía usar[char]
pero eso es más corto :)Scala REPL - 6 caracteres
(
##
es el significado del símbolo de ScalahashCode
y la cadena de Java"?="
hasta 2014).Scala REPL - 4 caracteres, 5 bytes
Matemáticas en nuestro personaje Unicode favorito produce un
Int
.fuente
Javascript, 18 caracteres
Actualización: en ES6, el uso de una plantilla literal puede guardar dos caracteres:
El código anterior es bastante fácil de entender teniendo en cuenta que
btoa
convierte una cadena en otra cadena de acuerdo con un conjunto de reglas bien definidas ( RFC 4648 ). Para ver cómo funciona la conversión, vamos a escribir la cadena de entrada "ÛMx" como una secuencia de dígitos binarios, donde cada carácter se representa como su código de carácter de 8 bits.Después de reorganizar los dígitos binarios en la última fila en grupos de 6, obtenemos la representación binaria de 4 números nuevos, correspondientes a los índices Base64 de los 4 caracteres en la cadena "2014".
Según la especificación HTML, los caracteres de salida se pueden recuperar de sus índices Base64 de acuerdo con esta tabla: http://dev.w3.org/html5/spec-LC/webappapis.html#base64-table .
Si no le importan los detalles, puede dejar que el navegador haga los cálculos por usted y descubra que "ÛMx" es el resultado de la evaluación
atob('2014')
en Javascript.fuente
alert
es lo más común).alert
llamada.alert
. Me pregunto si los estándares han cambiado para JS codegolf o si es solo un cambio que fue adoptado por Community.Otra entrada más de GolfScript, 9 caracteres imprimibles
Creo que esto es más corto que cualquiera de las entradas de GolfScript imprimibles hasta ahora:
( La entrada de 7 caracteres de Peter Taylor lo supera, pero incluye caracteres de control no imprimibles).
Yo llamo a esto el "eso es por lo que el año pasado!" entrada, porque lo que realmente hace es generar el número 2013 en 8 caracteres, como 33 × 61, y luego lo incrementa en uno. ;-)
fuente
C (31)
C (32)
C (30)
C (30)
fuente
"%x"
y'b'*'S'
? Eso es 8212 dic o 2014 hexadecimal. Guarda un carácter uno, uno literal y dos en la cadena de formato.'b'*'S'
es 8134. La factorización prima de 8212 es 2 * 2 * 2053, por lo que no veo una manera fácil de producirlo.8212/'b' == 'S'
:(Adelante, 14
fuente
62 34 * 94 - .
si no hablas Forth, esto significaprint (62 * 34 - 94)
.'ߞ .
imprime el carácter.GolfScript, 14
Cómo funciona: ASCII dice así:
Entonces, esto toma los códigos ASCII de cada carácter, resta cinco y los pega en una cadena.
{...}%
produce una matriz de los caracteres de una cadena asignada, cuando se le da una cadena como argumento. Entonces, incrementa cada carácter en 5 ()
significa incremento).fuente
+
final es innecesario. Además, en lugar de aumentar 5 veces, solo agregue cinco. Ahorro total: 4 caracteres.'-+,/'{5+}%
5
es un número."-+,/"_,)f+
. :) (Por otra parte, CJam lo ha hechoKD
).Python, 32 caracteres
Probablemente sea posible reducirlo usando el 2014 th Unicode char
ߞ
, pero no lo intenté.Quincunx señala que
es más corto por tres caracteres.
fuente
print(ord("ߞ"))
. No parece funcionar en Python 2; Python 2 probablemente no es compatible con Unicode.a=ord('.');print(a*a-ord('f'))
es 2 caracteres más corto.u
al final de la cadena (sería"ߞ"u
)u
para decir que eran unicode, pero en Python 3, todas las cadenas son automáticamente unicodeprint ord('.')**2-ord('f')
es ligeramente más corto.APL (6 bytes, 4 caracteres)
Sin embargo, solo funciona este año.
Por qué funciona
Sin depender de la fecha del sistema, son 10 bytes (7 caracteres):
fuente
⎕
), se supone que debe verse así.Python
3210 bytes,9185 (66 conmath
importados por defecto) bytes matemática puraMe divertí mucho escribiendo esto:
Imprime todas las formas posibles en que puedo escribir
2014
usando el método de Bruno Le Floch (32 caracteres):Pero esto es obviamente redundante, por lo que si su intérprete está configurado en utf-8 por defecto, todo lo que necesita es:
Además, gracias a AmeliaBR (por la idea), hice todo lo posible para implementar una versión matemática pura:
fuente
a,b=int(e),int(pi);c=a+a;print a**(b*c-c+b)-a*a**c-a
y puede eliminar por completo la importación matemática haciendo uso del hecho de queTrue
en Python 2.x es idéntico al entero 1 en funcionamiento, reduciéndolo a 50 caracteres:o=True;a=o+o;b=a+o;c=b+o;print a**(b*c-o)-a*a**c-a
ord('ߞ')
R (20 caracteres)
@popojan (todavía no puede publicar una respuesta aquí) ha proporcionado la solución en 20 caracteres.
Salida:
R (22 caracteres)
El usuario anónimo ha sugerido una solución más corta.
2014
estáBBC
en la base 13.pi*pi+pi
(= 13.0112) es tratado por R en este contexto como el entero 13. Salida:R (30 caracteres)
Gracias a @Tomas!
Salida:
R (31 caracteres)
Inspirado en la respuesta de AmeliaBR . Salida:
fuente
cat(a<-T+T,T-T,T/T,a^a,sep="")
(30 caracteres),paste0(aT+T,T-T,T/T,a^a)
(26 caracteres)paste0
no está permitida, ya que contiene el símbolo0
. Su solución tiene 30 caracteres si se usacat
.2014
en el directorio actual y escribirlist.files()
- 12 caracteresJava -
7775 caracteres75 caracteres si
print
se agrega en una clase con el método principal:Significa
35*60-86
que es igual a 2014fuente
class a{static{System.out.println('#'*'<'-'V');}}