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>
Respuestas:
Convexo, 9 bytes
¡Nuevo método! Además, me di cuenta de que es exactamente lo mismo que la respuesta de Luis, pero en Convex, pero se me ocurrió esto de forma independiente.
Pruébalo en línea!
Explicación:
Solución anterior, 10 bytes:
Pruébalo en línea!
Explicación:
fuente
A,'[,_el^'_
Rubí, 26 bytes
Los caracteres se pueden imprimir en cualquier orden? ¡No me importa si lo hago!
Pruébalo en línea!
fuente
Perl, 20 bytes
Requiere
-E
sin costo adicional.Entonces, mi respuesta original (abajo) fue un poco aburrida. Lo único que he logrado hacer es lo anterior, eso es exactamente lo mismo, pero parece un poco más confuso ... Es casi exactamente equivalente a lo siguiente:
Me gustan las sugerencias de @ msh210 en los comentarios, ¡pero son demasiado largas!
fuente
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
...Cheddar,
3127 bytesEsto muestra bien al
@"
operadorNo se completó porque finalmente pude arreglar el
@"
operador. El error fue que estaba generando un rango Cheddar, no un rango JS, por lo que no podía funcionar correctamenteExplicación
El
@"
operador fue diseñado por @ CᴏɴᴏʀO'Bʀɪᴇɴ, y lo que hace es generar un rango de cadenas de LHS a RHS. Cuando se usa como operador unario, devuelve el carácter en el punto de código dado (como el de Pythonchr
)Sin golf
fuente
brainfuck, 58 bytes
Pruébalo en línea .
Inicializa la cinta a 3 · 2 n , y trabaja desde allí.
fuente
JavaScript (ES6), 62 bytes
Devuelve
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz
, por lo que solo 6 bytes más cortos que una función que devuelve el literal de cadena. Sí, apesta.fuente
btoa
devuelve la salida requerida.atob
._
) y 14 para_=>atob("")+""
.Haskell, 38 bytes
Nada que explicar aquí.
fuente
:
y++
?++
toma dos cadenas y las concatena.:
toma un char y un string y pone el char delante del string."_"++['a'..'z']...
También funciona, pero es un byte más largo.PowerShell v3 +,
3533 bytesConstruye una matriz dinámica
1..127
, la convierte como unachar
matriz. Eso se alimenta al-match
operador que trabaja en la expresión regular\w
, que devolverá todos los elementos que coincidan (es decir, exactamente alfanuméricos y subrayados). Encapsulamos esos elementos de matriz en a-join
para agruparlos como una cadena. Eso queda en la tubería y la salida es implícita.fuente
0
...V, 27 bytes
Pruébalo en línea!
Esta respuesta es horriblemente complicada. Publicaré una explicación más tarde.
Hexdump:
Explicación:
Legible:
fuente
J,
302928 bytes¡Guardado un byte gracias a randomra!
Salida:
Explicación
No proporcionaré una explicación per se , pero proporcionaré resultados intermedios.
fuente
Haskell, 31 bytes
La expresión
zip "aA0_" "zZ9_"
da la lista de puntos finales[('a','z'),('A','Z'),('0','9'),('_','_')]
. Lado
notación lleva a cada uno(x,y)
a lo inclusivo\(x,y)->[x..y]
y concatena los resultados. Gracias a Anders Kaseorg por dos bytes endo
lugar de>>=
.Compare con las alternativas:
fuente
do
la notación guarda dos bytes:do(x,y)<-zip"aA0_""zZ9_";[x..y]
C, 50 bytes
Llama
f()
sin ningún argumento.Huellas dactilares
fuente
isalnum(n)|n==95&&putchar(n)
putc
lugar deputchar
.putc
espera una secuencia para escribir también, que no pasó. La función en sí funciona bien (intente eliminarlo porputc
completo, y 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
fuente
Python 3, 58 bytes
Un programa completo que imprime en STDOUT.
El resultado es:
_0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
Cómo funciona
Pruébalo en Ideone
Si se permitieran las constantes de cadena, lo siguiente habría sido de 45 bytes:
fuente
print('_'+*filter(str.isalnum,map(chr,range(123))))
print('_',*filter(str.isalnum,map(chr,range(123))))
, pero que imprime separando espacios; el OP dijo en los comentarios que "... no se permiten espacios en la salida".print''.join(filter(str.isalnum,map(chr,range(123)))),'_'
Mi primer intento de codegolf!
C #,
168152,150,147,130,127,117,116,115,109,106 bytesMuchas gracias a aloisdg, AstroDan, Leaky Nun y Kevin Lau, no a Kenny por toda la ayuda en los comentarios.
fuente
\w
clase regex cubre los caracteres alfanuméricos y también_
, que deberían ser lo"\\w"
suficientemente válidos para su función de coincidencia de expresiones regulares.Puro golpe, 32
Ideone .
fuente
Objeto Pascal,
858373 bytesSimplemente objeto pascal usando un conjunto de caracteres. Escribir un programa completo en lugar de un procedimiento ahorra 2 bytes. La eliminación de la palabra clave del programa afeita 10 bytes más.
fuente
program
palabra clave inútil .bash -
4737 bytesLa salida en mi sistema es:
Gracias a Digital Trauma por sus útiles sugerencias.
En algunos sistemas, puede usar en
ascii
lugar deman sh
guardar un byte.fuente
man sh|egrep -io _\|\\w|sort -u|tr -d \\n
\w
coincidencias_
y ya no distingue entre mayúsculas y minúsculas, por lo que podría acortar aún más.env
en lugar deman sh
debería funcionar en la mayoría de los entornos. Lo hace en el mío.$ env|egrep -o \\w|sort -u|tr -d \\n
->0123456789ABCDEFGHIKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz
.J
. Mi error.PHP, 40 bytes
Demo en línea .
fuente
Retina ,
3019161512 bytesModifiqué mi intento de alfabeto original para esta última versión. Cada personaje se imprime en un bucle.
La primera línea está vacía.
Pruébalo en línea
Salida:
Gracias a Leaky Nun por jugar 4 bytes en mi último intento.
fuente
w
cuenta como una constante que contiene 9 o más de los caracteres requeridos. Probablemente tendrá que expandir el lado derecho y reemplazar elw
de la izquierda cono
. Aunque puede guardar un byte utilizando enEO
lugar de,d
ya que solo contienen 5 caracteres cada uno.w
dentro de la etapa de transliteración no tiene nada que hacer regex. Es una taquigrafía que se expande a una lista de los 63 caracteres requeridos. Al menos le preguntaría a orlp sobre este caso específicamente, ya que es bastante diferente del uso\w
en una expresión regular.MATL , 11 bytes
Pruébalo en línea!
fuente
8W:'\w'XX
8W:'\w'XX!
lo que intenté pero no funciona?Brachylog , 25 bytes
Esto imprime lo siguiente para
STDOUT
:Explicación
fuente
Pyth,
1312 bytesPruébalo en línea!
Encuentra todos los caracteres en U + 0000 a U + 007B que coinciden con la expresión regular
/\w/
.Salidas
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz
.enfoque alternativo: 15 bytes
Pruébalo en línea!
básicamente genera los rangos medio incluido requeridos:
0-:, A-[, a-{, _-`
.fuente
CJam ,
151411 bytes¡4 bytes de descuento gracias a @FryAmTheEggman y @Dennis!
Pruébalo en línea!
fuente
Brainfuck, 89 bytes
Pruébalo aquí
Detalles:
Si hubiera podido comentar, tendría que mejorar las respuestas de otros. Pero como no puedo, podría publicar el mío. Cuando comencé a escribir esto, el BF más bajo tenía 96 de largo.
fuente
F#,
5059 bytesSalida:
Editar: perdió los dígitos la primera vez
Edit2, inspirado en esta solución de Haskell este fragmento de F # tiene 67 bytes.
Salida:
fuente
Hexagonía, 33
Expandido:
Salida:
Pruébalo en línea!
Tenga en cuenta que hay un carácter no imprimible
0x1A
como primer byte del programa. Esto también hace que la primera fila del Hexágono expandido se vea un poco apagada. ¡Muchas gracias a Martin por mostrarme este truco, así como por sugerir el algoritmo para imprimir el alfabeto!Esto imprime el alfabeto almacenando
a
yA
en dos bordes de un hexágono y el número 26 en el borde del hexágono que toca la unión entre las letras. Esto se parece a esto:Luego ingresa un bucle que imprime las letras y luego las incrementa, y luego disminuye el número. Después de una iteración tendríamos:
Y así. El código lineal para la inicialización es:
0x1A " A } a
. El código lineal para los bucles fuera de los cambios de flujo de control es:; ) ' ; ) { ( ' =
.Una vez que el contador llega a cero, seguimos un camino diferente para imprimir los números y un guión bajo. Escrito a cabo linealmente esto es:
x 3 5 6 8 4 7 9 ! ; { @
. Esto reemplaza el valor actual del borde de la memoria con el número 1203568479 (tenga en cuenta quex
el código ASCII es 120), que contiene todos los dígitos decimales. Imprimimos este número y luego usamos una característica ordenada de Hexagony: imprimimos el número mod 256 como un carácter ASCII. Esto pasa a ser 95, o subrayado.fuente
Brainfuck,
11410398907671 bytesOtro
trivialsolución (ahora no trivial), ¡pero esta vez es BF!Ahorró 14 (!) Bytes gracias a @primo.
Ahorré 4 bytes más gracias a la sugerencia de @ primo de generar el rango hacia atrás, y guardé otro incrementando antes de imprimir las letras minúsculas.
Nuevo (recurrencia 4, 71):
Antiguo (valores, 114):
Antiguo (recurrencia 1, 103):
Antiguo (recurrencia 2, 90):
Viejo (recurrencia 3, 76):
Asume celdas de envoltura de 8 bits y memoria de envoltura. Solía probarlo en línea .
Todos imprimir
_AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789
Primero, esta parte
inicializa la cinta con estos valores
Esto funciona porque la relación de recurrencia que modelé básicamente es
f(x) = 7 * (3 * x + 1)
hacia atrás. Ver @ primo Hello, World! Responda para una explicación de qué es una relación de recurrencia.Entonces, es bastante simple cambiar estos valores a valores útiles. (e imprime el guión bajo)
Luego, los bucles simples usan los valores para imprimir el resto de caracteres. Ahorro 1 byte al tener un incremento antes de la impresión.
Realmente necesito encontrar una generación de secuencia más corta.Encontré una relación de recurrencia que parece funcionar bien, pero podría haber una relación más corta con menos caza y picoteo.Utilicé una calculadora de regresión lineal para encontrar cuál debería ser la relación de recurrencia lineal más corta posible, por lo que probablemente debería encontrar alguna otra fórmula si quiero mejorar.
@primo realmente mejoró mucho la relación de recurrencia, gracias.
fuente
+[--[<+++++++>->+<]>-]
>-]
, puede estar seguro de que el término final será 1 (x7). En realidad, probablemente deberías comenzar-
, termina mucho más rápido.Sesos , 17 bytes
Salida
Pruébalo en línea! Verifique la depuración para ver el código binario generado.
Cómo funciona
El archivo binario anterior se ha generado al ensamblar el siguiente código SASM.
fuente
Pyke, 13 bytes
Pruébalo aquí!
Genera ascii 0-150 y filtra por alfanumérico y agrega
_
al finalfuente