var QUESTION_ID=85666,OVERRIDE_USER=4162;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;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:
Convexo, 9 bytes
Novo método! Além disso, eu percebi que é exatamente a mesma resposta de Luis, mas em Convex, mas eu a criei de forma independente.
Experimente online!
Explicação:
Solução antiga, 10 bytes:
Experimente online!
Explicação:
fonte
A,'[,_el^'_
Ruby, 26 bytes
Os caracteres podem ser impressos em qualquer ordem? Não se importe se eu fizer!
Experimente online!
fonte
Perl, 20 bytes
Requer
-E
sem custo extra.Então, minha resposta original (abaixo) foi um pouco chata. A única coisa que consegui sugerir é o acima, é exatamente o mesmo, mas parece um pouco mais confuso ... É praticamente equivalente ao abaixo:
Gosto das sugestões de @ msh210 nos comentários, mas elas são um pouco longas demais!
fonte
say grep/\w/,map chr,1..122
||say map{chr=~/\w/;$&}1..122
||say map{chr=~s/\W//r}1..122
say chr=~/\w/g for 1..255
...Queijo Cheddar,
3127 bytesIsso mostra
@"
bem o operadorNão concluído porque finalmente consegui resolver o problema do
@"
operador. O problema era que ele estava gerando um intervalo Cheddar e não um JS, por isso não funcionava corretamenteExplicação
O
@"
operador foi projetado por @ CᴏɴᴏʀO'Bʀɪᴇɴ e o que faz é gerar um intervalo de cadeias de caracteres de LHS a RHS. Quando usado como um operador unário, ele retorna o caractere no ponto de código especificado (como o de pythonchr
)Ungolfed
fonte
brainfuck, 58 bytes
Experimente online .
Inicializa a fita para 3,2 · n e funciona a partir daí.
fonte
JavaScript (ES6), 62 bytes
Retorna
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz
, portanto, apenas 6 bytes mais curtos que uma função que retorna a string literal. Sim, é péssimo.fonte
btoa
retorne a saída necessária.atob
._
) e 14 para_=>atob("")+""
.Haskell, 38 bytes
Nada a explicar aqui.
fonte
:
e++
?++
pega duas cordas e as concatena.:
pega um caractere e uma string e coloca o caracter na frente da string."_"++['a'..'z']...
também funciona, mas é mais um byte.PowerShell v3 +,
3533 bytesConstrói uma matriz dinâmica
1..127
, lança-a como umachar
matriz. Isso é fornecido ao-match
operador que trabalha na regex\w
, que retornará todos os elementos correspondentes (ou seja, exatamente alfanuméricos e sublinhados). Encapsulamos esses elementos de matriz em um-join
para agrupá-lo como uma sequência. Isso é deixado no pipeline e a produção está implícita.fonte
0
...V, 27 bytes
Experimente online!
Esta resposta é terrivelmente complicada. Vou postar uma explicação mais tarde.
Hexdump:
Explicação:
Legível:
fonte
J,
302928 bytesGuardou um byte graças a randomra!
Saída:
Explicação
Não fornecerei uma explicação propriamente dita , mas fornecerei resultados intermediários.
fonte
Haskell, 31 bytes
A expressão
zip "aA0_" "zZ9_"
fornece a lista de terminais[('a','z'),('A','Z'),('0','9'),('_','_')]
. Ado
notação leva cada um(x,y)
para o inclusivo\(x,y)->[x..y]
e concatena os resultados. Obrigado a Anders Kaseorg por dois bytes com emdo
vez de>>=
.Compare com alternativas:
fonte
do
a notação salva dois bytes:do(x,y)<-zip"aA0_""zZ9_";[x..y]
C, 50 bytes
Ligue
f()
sem argumentos.Impressões
fonte
isalnum(n)|n==95&&putchar(n)
putc
vez deputchar
.putc
espera que um fluxo também seja gravado, pelo qual você não passou. A função em si funciona bem (tente remover a sua porputc
completo e funciona).If the number of arguments does not equal the number of parameters, the behavior is undefined.
6.5.2.2/6, ver N1570 ./// , 63 bytes
fonte
Python 3, 58 bytes
Um programa completo que imprime em STDOUT.
A saída é:
_0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
Como funciona
Experimente no Ideone
Se constantes de string fossem permitidas, o seguinte seria 45 bytes:
fonte
print('_'+*filter(str.isalnum,map(chr,range(123))))
print('_',*filter(str.isalnum,map(chr,range(123))))
, mas que imprime espaços separados; o OP disse nos comentários que '... nenhum espaço é permitido na saída' '.print''.join(filter(str.isalnum,map(chr,range(123)))),'_'
Minha primeira tentativa no codegolf!
C #,
168152150147130127117116115109106 bytesMuito obrigado a Aloisdg, AstroDan, Leaky Nun e Kevin Lau - não Kenny por toda a ajuda nos comentários.
fonte
\w
classe regex abrange os alfanuméricos e também_
, que devem ser"\\w"
válidos o suficiente para a função de correspondência de regex.Pure bash, 32
Ideone .
fonte
Objeto Pascal,
858373 bytesSimples objeto pascal usando um conjunto de caracteres. Escrever um programa completo em vez de um procedimento reduz 2 bytes. A remoção da palavra-chave do programa reduz mais 10 bytes.
fonte
program
palavra - chave inútil .bash -
4737 bytesA saída no meu sistema é:
Agradecemos ao Digital Trauma por sugestões úteis.
Em alguns sistemas, você pode usar em
ascii
vez deman sh
salvar um byte.fonte
man sh|egrep -io _\|\\w|sort -u|tr -d \\n
\w
correspondências_
e já não faz distinção entre maiúsculas e minúsculas, por isso pode reduzir ainda mais.env
em vez deman sh
deve funcionar na maioria dos ambientes. Faz no meu.$ env|egrep -o \\w|sort -u|tr -d \\n
->0123456789ABCDEFGHIKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz
.J
. Minha culpa.PHP, 40 bytes
Demonstração Online .
fonte
Retina ,
3019161512 bytesModifiquei minha tentativa de alfabeto original para esta versão mais recente. Cada caractere é impresso em um loop.
A primeira linha está vazia.
Experimente online
Saída:
Agradecimentos a Leaky Nun por jogar 4 bytes na minha última tentativa.
fonte
w
conta como uma constante contendo 9 ou mais dos caracteres necessários. Você provavelmente terá que expandir o lado direito e substituirw
o esquerdo poro
. Embora você possa salvar um byte usando emEO
vez de,d
pois eles contêm apenas 5 caracteres cada.w
dentro do estágio de transliteração não tem nada a ver com regex. É uma abreviação que se expande para uma lista dos 63 caracteres necessários. Pelo menos eu perguntaria ao orlp sobre esse caso especificamente, já que é bem diferente de usar\w
em uma regex.MATL , 11 bytes
Experimente online!
fonte
8W:'\w'XX
8W:'\w'XX!
o que eu tentei, mas não funcionaBraquilog , 25 bytes
Isso imprime o seguinte para
STDOUT
:Explicação
fonte
Pitão,
1312 bytesExperimente online!
Localiza todos os caracteres em U + 0000 a U + 007B que correspondem ao regex
/\w/
.Saídas
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz
.abordagem alternativa: 15 bytes
Experimente online!
basicamente gera os intervalos de meia incluído necessários:
0-:, A-[, a-{, _-`
.fonte
CJam ,
151411 bytes4 bytes de desconto, graças a @FryAmTheEggman e @Dennis!
Experimente online!
fonte
Brainfuck, 89 bytes
Experimente aqui
Detalhes:
Se eu pudesse comentar, teria que melhorar as respostas dos outros. Mas como não posso, posso postar o meu. Quando comecei a escrever este, o menor BF tinha 96 anos.
fonte
F #,
5059 bytesSaída:
Editar: perdeu os dígitos pela primeira vez
Edit2, inspirado nesta solução Haskell, este trecho de F # é de 67 bytes.
Saída:
fonte
Hexagonia, 33
Expandido:
Saída:
Experimente online!
Observe que há um caractere não imprimível
0x1A
como o primeiro byte do programa. Isso também faz com que a primeira linha do Hexagon expandido pareça meio fora de controle. Muito obrigado a Martin por me mostrar esse truque, bem como por sugerir o algoritmo para imprimir o alfabeto!Isso imprime o alfabeto armazenando
a
eA
nas duas bordas de um hexágono e o número 26 na borda do hexágono que toca a junta entre as letras. Isso é algo como isto:Em seguida, ele insere um loop que imprime as letras e as incrementa e, em seguida, diminui o número. Após uma iteração, teríamos:
E assim por diante. O código linear para a inicialização é:
0x1A " A } a
. O código linear para os loops fora das mudanças de fluxo de controle é:; ) ' ; ) { ( ' =
.Quando o contador chega a zero, seguimos um caminho diferente para imprimir os números e um sublinhado. Escrito linearmente isto é:
x 3 5 6 8 4 7 9 ! ; { @
. Isso substitui o valor da borda da memória atual pelo número 1203568479 (observe quex
o código ASCII é 120), que contém todos os dígitos decimais. Imprimimos esse número e, em seguida, usamos um recurso interessante do Hexagony: imprimimos o número mod 256 como um caractere ASCII. Acontece que isso é 95, ou sublinhado.fonte
Brainfuck,
11410398907671 bytesOutro
trivialsolução (agora não trivial), mas desta vez é BF!Economizou 14 (!) Bytes graças a @primo.
Economizei mais 4 bytes graças à sugestão de @ primo de gerar o intervalo para trás e salvei outro incrementando antes de imprimir para as letras minúsculas.
Novo (recorrência 4, 71):
Antigo (valores, 114):
Antigo (recorrência 1, 103):
Antigo (recorrência 2, 90):
Antigo (recorrência 3, 76):
Assume células de quebra de 8 bits e memória de quebra. Eu usei Experimente online .
Todos imprimem
_AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789
Primeiro, esta parte
inicializa a fita com esses valores
Isso funciona porque a relação de recorrência que modelei é basicamente
f(x) = 7 * (3 * x + 1)
inversa. Veja Olá, mundo! Responda a uma explicação sobre o que é uma relação de recorrência.Então, é bastante simples alterar esses valores para valores úteis. (e imprima o sublinhado)
Em seguida, os loops simples usam os valores para imprimir o restante dos caracteres. Economizo 1 byte por ter um incremento antes da impressão.
Eu realmente preciso encontrar uma geração de sequência mais curta.Encontrei uma relação de recorrência que parece funcionar bem, mas pode haver uma mais curta com menos caça e beijinhos.Usei uma calculadora de regressão linear para descobrir qual deveria ser a menor relação de recorrência linear possível, então provavelmente encontro outra fórmula se quiser melhorar.
O @primo realmente melhorou muito a relação de recorrência, obrigado.
fonte
+[--[<+++++++>->+<]>-]
>-]
, você pode ter certeza de que o termo final será 1 (x7). Na verdade, você provavelmente deveria começar-
, termina muito mais rápido.Sesos , 17 bytes
Saída
Experimente online! Marque Debug para ver o código binário gerado.
Como funciona
O arquivo binário acima foi gerado montando o seguinte código SASM.
fonte
Pyke, 13 bytes
Experimente aqui!
Gera ascii 0-150 e filtra por alfanuméricos e adiciona
_
ao finalfonte