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>
++++++[>++++++++<-]>++.--.+.+++.
Respostas:
Mouse-2002 , 4 bytes.
São 4 bytes de puro e doce ASCII.
No mouse , as letras do alfabeto são inicializadas com os valores de 0 a 25.
!
é o operador para imprimir inteiros, assim este gravuras20
em seguida14
(nenhuma nova linha intermitente).Não há intérprete on-line disponível, mas aqui você encontrará um intérprete escrito em C (que precisa de alguns ajustes antes que se possa coagir
gcc
para compilá-lo) e o mesmo intérprete compilado,Win32
mas que funciona perfeitamente no Linuxwine
.Aqui você pode encontrar a versão fixa do intérprete, que é compilada.
fonte
KE
, mas é realmente válido porque é um idioma anterior a 2014.Python, 52 bytes
Atualizado para 2015 graças a @Frg:
Passe o mouse sobre a versão 2016:
Experimente online!
fonte
print sum(ord(c) for c in 'HAPPY NEW YEAR To you too.')
Oh espere, estou um ano atrasado. É 2013.sum(map(ord,'Happy new year to you!'))
economizaria 7 caracteres.Befunge 98 -
171198 bytesSemelhante à versão antiga, mas lembrei de
'
Curiosamente, 45 2 -11 é o único par de números a, b onde A significância desses conjuntos é que [32,126] é o conjunto de caracteres ascii imprimíveis e [10,15] é o conjunto de números Befunge facilmente acessíveis. Eu encontrei esse par com este programa python :
Ou, se o seu intérprete suportar unicode, isso funcionará:
Befunge 98 - 5 bytes (4 caracteres)
Pelo menos, funciona em http://www.quirkster.com/iano/js/befunge.html com o seguinte código (Befunge 93 - 6 bytes / 5 caracteres):
Versão antiga
calcula o número e depois o imprime:
Versão antiga:
Empurra os valores ascii para 2014, -10. Em seguida, imprime cada um após adicionar 10 a ele.
fonte
randomstuff2randomstuff0randomstuff1randomstuff4
fosse impresso: eu não consideraria uma solução válida.Ruby, 15
Temporário;)
Observe que a seção da pergunta
não foi editado até muito tempo depois que eu postei minha resposta ...
Jan Dvorak oferece uma ótima alternativa nos comentários :
Mas é tão pouco entusiasmado. Eu prefiro:
Ou até:
E aqui está a pontuação correta em inglês:
Ok, ok, eu não pude evitar:
fonte
Happy = Time; Happy.new.year
Ir, 2 bytes (UTF-16)
Um caractere unicode (2 bytes em UTF-16, 3 bytes em formato UTF-8), saída 2014 como parte de um erro
http://ideone.com/dRgKfk
fonte
Python, 26
fonte
0
-9
.MATLAB, Scala (4 caracteres, 5 bytes)
Você pode tirar proveito do sistema do tipo relativamente fraco do MATLAB (e Scala), aqui. O truque é aplicar a
+
operação unária em uma sequência composta apenas pelo caractereߞ
(do ponto de código UTF-8 U + 07DE ou 2014 em decimal). Esta operação converte implicitamente a string em um duplo (no MATLAB) e em umInt
(no Scala):Detalhes da contagem de bytes:
+
é ASCII e conta com 1 byte'
é ASCII e conta com 1 byte (mas aparece duas vezes na expressão)ߞ
é um caractere UTF-8 de 2 bytesTotal: 5 bytes
TeX (
32.26 caracteres, tantos bytes)Uma alternativa ainda mais curta (proposta por Joseph Wright ) é
XeTeX / LuaTeX (13 caracteres, 14 bytes)
Se o XeTeX ou o LuaTeX forem permitidos, a entrada UTF-8 poderá ser usada diretamente (como proposto por Joseph Wright ):
fonte
\let~\number~`^^T~`^^N\bye
25 caracteres / bytes. Você IMHO conta errado, é 25 para a sua solução também.\the\year\bye
+'ߞ'
também trabalha em Scala (e algumas outras línguas eu imagino)dc, 6 caracteres
D
empurra 13 na pilha, mesmo que o raio de entrada seja 10 inicialmentei
altera o raio de entrada (de 13 para 13)BBC
é 2014 base 13.p
impressões.Saída do console:
fonte
DiBBCp
(6 caracteres), o resto é apenas uma maneira de executá-lo.D
comando na página de manual. O que isso faz? Não importa ... D é hexadecimal para 13.Código Morse, 23
;)
fonte
7245 caracteres no código; Zero códigos de caracteresIsso está longe de ser a resposta mais curta publicada, mas ninguém postou ainda uma resposta que
Usando matemática pura (ok, e uma conversão booleana automática) em R, no console do R:
Imprime o número 2014.
T
é um sinônimo predefinido para true em R. As funçõesfloor
eexp
estão diretamente disponíveis no pacote base, assim como api
constante. R não possui um operador de incremento, mas repetir o(x*x)
número de caracteres que menos incrementa e diminui duas vezes cada.Versão original em Javascript (72 caracteres)
Pela simples razão de que eu poderia testar no console, e ele não se importa com uma completa falta de espaço em branco:
executar no seu console e imprimirá de volta o número 2014.
Adereços para xkcd (e também ) para que eu pense sobre exp (pi):
PS Se você pode tornar o mesmo algoritmo mais curto em um idioma diferente, poste um comentário com ele.
fonte
cdd**e-.@
(postada antes da sua) que não utiliza códigos de caracteres ou data do sistema. Ele calcula o número 2014c
. ,,d
ee
são dígitos numéricos hexadecimais.a
,b
, ...,f
impulso (respectivamente) 10,11, ... 15, de modo12 * 13 * 13 - 14
é a computação.Scala REPL
3429 caracteres.Bem, ok, se você realmente quer jogar golfe com algum caractere, pode usar:
ou
que possuem 11 e 22 caracteres, respectivamente.
fonte
toInt
assim:+"Happy new year to you!".sum
TestePHP, 9 bytes
Isso requer PHP 7.1 ou inferior. Ele funcionará no PHP 7.2, mas resultará em um aviso. Não há garantias para nenhuma versão futura.
xxd
necessário devido a dados binários (para copiar e colar seria mais fácil). Pode voltarE_NOTICE
, mas isso realmente não importa, não é?Como alternativa, salve isso usando a codificação ISO-8859-1.
fonte
echo date('Y');
?<?=date(Y);
seriam 11 caracteres, e eu tenho solução em 9 caracteres.C, 33 bytes
fonte
Mathematica, 14 caracteres (ou 15, se você contar o bitmap como um caractere)
TextRecognize @
fonte
\d
intervalo. Ou seja, se for o GIF, é garantido que o próprio cabeçalho contenha alguns.Python3.4.0b2 (0 bytes)
fonte
Javascript, 23 bytes
Usa a Conversão Base 64
23 caracteres (16 com atob por si só)
Ou
fonte
MMXIV
não tem caracteres em comum com2014
, última vez que verifiquei ...// ;)
[!+[]+!+[]]+[+[]]+[+!+[]]+[!+[]+!+[]+!+[]+!+[]]
-alert([!+[]+!+[]]+[+[]]+[+!+[]]+[!+[]+!+[]+!+[]+!+[]]);
Embora não tenha certeza de que atendeJoe Z
aos requisitos.Perl - 10 caracteres
Esta solução é cortesia do BrowserUK no PerlMonks , embora eu tenha excluído algumas pontuações e espaços em branco desnecessários da solução que ele postou. É um "não" bit a bit em uma string binária de quatro caracteres.
Os caracteres exibidos acima representam os octetos binários cd: cf: ce: cb e são como eles aparecem nas ISO-8859-1 e ISO-8859-15.
Aqui está o script inteiro em hexadecimal, além de um exemplo executando-o:
Perl (sem bits altos) - 14 caracteres
Isso usa um bit a bit "ou" nas duas seqüências de quatro caracteres
"RPQT"
e"````"
(isto é, quatro reticulares).(Inicialmente, eu tinha as duas strings ao contrário, o que exigia espaço em branco entre
print
eRPQT
para separar os tokens. @DomHastings apontou que, trocando-os, eu poderia salvar um personagem.)Perl (trapaça) - 8 caracteres
Provavelmente isso não está dentro do espírito da competição, mas o hdb no PerlMonks apontou que o Perl fornece uma variável chamada
$0
que contém o nome do programa atual sendo executado. Se for permitido nomear o arquivo que contém o script "2014",$0
será igual a 2014.$0
contém um dígito; portanto, não podemos usá-lo diretamente, mas${...}
conter uma expressão que avalia como 0 ficará OK; por exemplo:Para maior consistência, vamos fazer a coisa hexcat-then-perl com isso:
Eu acho que isso é trapaça, mas é uma solução interessante, no entanto, vale a pena mencionar.
fonte
print"````"^RPQT
. Pode ser possível usarsay
também no 5.10+ usando -E em vez de -e, mas não sei se isso gera uma penalidade de +2 para diferentes argumentos de linha de comando?say
nenhuma penalidade.say ABCD^srrp
.Ruby, 20
Explicação:
bbc
está2014
na base 13. Mais curta que Python. Não tão curto quanto Forth.fonte
p 'ߞ'.ord
para um programa totalmente funcional, por'ߞ'.ord
dentroirb
. Funciona em 1.9+?-*?--?\v
(45 * 45 - 11) (Ruby 1.8)?.*?.-?f
(46 * 46 - 102) (Ruby 1.8 única vez)Powershell, 9
ߞ
( U + 07DE NKO LETTER KA ) é contado como dois bytes de acordo com as informações da tag code-golf .[""]
retorna o primeiro caractere da sequência (""
é convertido em0
). O unário mais opeartor (+
) converte o caractere em um número inteiro.fonte
['']
truque é bom. I normalmente usado[char]
, mas isso é de fato menor :)Scala REPL - 6 caracteres
(
##
é o significado do símbolo de ScalahashCode
e a cadeia de caracteres de Java é"?="
hash para 2014.)Scala REPL - 4 caracteres, 5 bytes
A matemática em nosso personagem unicode favorito produz um
Int
.fonte
Javascript, 18 caracteres
Atualização: no ES6, o uso de um literal de modelo pode salvar dois caracteres:
O código acima é bastante fácil de entender, lembrando que
btoa
converte uma string em outra string de acordo com um conjunto de regras bem definidas ( RFC 4648 ). Para ver como a conversão funciona, vamos escrever a sequência de entrada "ÛMx" como uma sequência de dígitos binários, onde cada caractere é renderizado como seu código de 8 bits.Após reorganizar os dígitos binários na última linha em grupos de 6, obtemos a representação binária de 4 novos números, correspondendo aos índices Base64 dos 4 caracteres na cadeia "2014".
Conforme a especificação HTML, os caracteres de saída podem ser recuperados de seus índices Base64 de acordo com esta tabela: http://dev.w3.org/html5/spec-LC/webappapis.html#base64-table .
Se você não se importa com os detalhes, pode deixar o navegador fazer os cálculos e descobrir que ""Mx" é o resultado da avaliação
atob('2014')
em Javascript.fonte
alert
é mais comum).alert
ligação.alert
. Gostaria de saber se os padrões foram alterados para o codegolf JS ou se é apenas uma alteração que foi adotada pela Comunidade.Mais uma entrada GolfScript, 9 caracteres imprimíveis
Acredito que isso seja mais curto do que qualquer uma das entradas imprimíveis do GolfScript até agora:
( A entrada de 7 caracteres de Peter Taylor supera, mas inclui caracteres de controle não imprimíveis.)
Eu chamo isso de "isso é tão no ano passado!" entrada, porque o que ele realmente faz é gerar o número 2013 em 8 caracteres, como 33 × 61 e, em seguida, incrementa-o em um. ;-)
fonte
C (31)
C (32)
C (30)
C (30)
fonte
"%x"
e'b'*'S'
? Isso é 8212 dez ou 2014 hexadecimal. Salva um caractere, um literal e dois na string de formato.'b'*'S'
é 8134. A fatoração principal de 8212 é 2 * 2 * 2053, então não vejo uma maneira fácil de produzi-lo.8212/'b' == 'S'
:(Quarto, 14
fonte
62 34 * 94 - .
se você não fala adiante, isso significaprint (62 * 34 - 94)
.'ߞ .
imprime o caractere.GolfScript, 14
Como funciona: o ASCII é assim:
Portanto, isso pega os códigos ASCII de cada caractere, subtrai cinco e coloca-os em uma string.
{...}%
produz uma matriz dos caracteres de uma sequência mapeada, quando recebe uma sequência como argumento. Portanto, incrementa cada caractere em 5 ()
significa incremento).fonte
+
no final é desnecessário. Além disso, em vez de incrementar 5 vezes, basta adicionar cinco. Economia total: 4 caracteres.'-+,/'{5+}%
5
é um número."-+,/"_,)f+
. :) (Então, novamente, CJam temKD
.)Python, 32 caracteres
Provavelmente é possível reduzi-lo usando o char Unicode de 2014
ߞ
, mas não tentei.Quincunx observa que
é mais curto em três caracteres.
fonte
print(ord("ߞ"))
. Não parece funcionar no Python 2; O Python 2 provavelmente não suporta unicode.a=ord('.');print(a*a-ord('f'))
são 2 caracteres mais curtos.u
no final da cadeia (seria"ߞ"u
)u
a dizer que eles eram unicode, mas em Python 3, todas as cordas são automaticamente unicodeprint ord('.')**2-ord('f')
é um pouco menor.APL (6 bytes, 4 caracteres)
Só funciona este ano.
Por que funciona:
Sem contar com a data do sistema, são 10 bytes (7 caracteres):
fonte
⎕
), deveria ser assim.Python
3210 bytes,9185 (66 commath
importados por padrão) matemática puraDiverti-me escrevendo isso:
Imprime todas as formas possíveis de escrever
2014
usando o método de Bruno Le Floch (32 caracteres):Mas isso é obviamente redundante; portanto, se o seu intérprete estiver definido como utf-8 por padrão, basta que:
Além disso, graças a AmeliaBR (pela ideia), tentei o meu melhor para implementar uma versão matemática pura:
fonte
a,b=int(e),int(pi);c=a+a;print a**(b*c-c+b)-a*a**c-a
e você pode eliminar completamente a importação matemática, fazendo uso do fato de queTrue
no Python 2.x é idêntico ao número inteiro 1 em operação, reduzindo-o para 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 (ele ainda não está autorizado a postar uma resposta aqui) forneceu a solução em até 20 caracteres.
Resultado:
R (22 caracteres)
Usuário anônimo sugeriu uma solução mais curta.
2014
estáBBC
na base 13.pi*pi+pi
(= 13.0112) é tratado por R neste contexto como o número inteiro 13. Saída:R (30 caracteres)
Graças a @Tomas!
Resultado:
R (31 caracteres)
Inspirado na resposta de AmeliaBR . Resultado:
fonte
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
não é permitida, pois contém o símbolo0
. Sua solução cria 30 caracteres se estiver usandocat
.2014
no diretório atual e escrevalist.files()
- 12 caracteresJava -
7775 caracteres75 caracteres se
print
forem adicionados em uma classe com o método principal:Isso significa
35*60-86
que é igual a 2014fonte
class a{static{System.out.println('#'*'<'-'V');}}