Tareas
Todos los competidores intentan resolver la siguiente lista de 10 tareas:
Lea un entero positivo n de la entrada y devuelva la suma de los cubos de los primeros n enteros no negativos.
Para la entrada
1
, esto debería volver0
.Lea un entero positivo n de la entrada y devuelva un valor verdadero si y solo si n es un primo de Mersenne .
Lea una lista no vacía de n enteros de la entrada y devuelva su mediana .
Si n es par, use el menor de los dos valores medios.
Por ejemplo, la mediana de
[1 4 3 2]
es2
.Lea un entero (positivo, negativo o 0), o una representación de cadena en base 10 o unario, desde la entrada y devuelva sus dígitos en negabinario , sin ceros a la izquierda (con la excepción de la entrada 0).
La salida se puede formatear de cualquier manera conveniente (dígitos, matriz, cadena, etc.).
Retorno
pneumonoultramicroscopicsilicovolcanoconiosis
.Verifique la fecha actual y regrese
Happy New Year!
si corresponde según el calendario gregoriano.Seleccione pseudoaleatoriamente 64 puntos de código asignados únicos del bloque Unicode CJK Ideographs Unified Extension-A (U + 3400 - U + 4DB5) y devuelva la cadena de los caracteres correspondientes.
Todas las cadenas posibles deben tener la misma probabilidad de ser seleccionadas.
Lea dos cadenas de caracteres ASCII imprimibles de la entrada y devuelva un valor verdadero si y solo si el carácter de la primera cadena forma una subsecuencia de la segunda cadena.
Por ejemplo,
abc
,axbxc
debe devolver Truthy ybac
,axbxc
debería devolver Falsy.
- Lea una matriz rectangular multidimensional de enteros y un entero n desde la entrada y devuelva la matriz modificada con todos los enteros multiplicados por n .
Lea un número entero no negativo n de la entrada y devuelva una cadena de n vagones de tren, como se muestra a continuación.
Ejemplo de salida para n = 3 :
______ ______ ______ | | | | | | ()--() ~ ()--() ~ ()--()
La salida puede estar rodeada por cualquier cantidad de espacio en blanco siempre que se vea en el ejemplo.
Aclaraciones
0 no es ni positivo ni negativo.
Los espacios en blanco finales siempre están permitidos en la salida.
Se pueden leer varios datos de entrada en cualquier orden coherente y conveniente.
Reglas
Ninguna respuesta puede resolver dos tareas diferentes en el mismo lenguaje de programación. 1
Para cada tarea individual, se aplican las reglas estándar de código de golf .
En particular, puede enviar programas o funciones con los valores predeterminados de E / S habituales , pero no puede aprovechar estas lagunas .
La tarea 5 es esencialmente un desafío de complejidad kolmogorov , por lo que codificar el resultado no solo está permitido sino que se espera.
Solo se debe publicar una respuesta por usuario, que contenga como máximo una solución para cada una de las tareas.
Formatee su respuesta como en el siguiente ejemplo:
## Task 1, Python, 42 bytes <code goes here> Explanation, I/O, required Python version, etc. go here. --- ## Task 7, C, 42 bytes <code goes here> Explanation, I/O, required compiler (flags), etc. go here.
Puntuación
Por cada tarea que resuelves, obtienes un punto.
Esto significa que no tiene que resolver todas las tareas para participar.
Si su solución para la tarea n es la más corta en ese lenguaje de programación, obtendrá un punto adicional.
Si su solución para la tarea n es la más corta de todos los lenguajes de programación, obtendrá un punto adicional.
Los puntos de bonificación se otorgarán solo una vez por cada combinación de tarea-idioma y cada tarea, respectivamente.
Como de costumbre, si dos soluciones tienen el mismo número de bytes, el tiempo de publicación es el factor decisivo.
Si alguien te supera más tarde, pierdes los puntos de bonificación que el otro respondedor gana.
Puede enviar golf, agregar / eliminar idiomas de su respuesta o intercambiar los idiomas utilizados para dos tareas.
Cada vez que alguien edita su respuesta, todas las respuestas se vuelven a calificar.
Una vez que cambia los idiomas para una tarea, pierde la antigüedad. 2
La respuesta con la puntuación más alta gana. 3
Tabla de clasificación por tarea
<style>body{text-align:left!important}#answer-list{padding:10px;width:290px;float:left}#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}</style><script src=https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js></script><link rel=stylesheet href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"><div id=answer-list><table class=answer-list><thead><tr><td>Task<td>Author<td>Language<td>Score<tbody id=answers></table></div><table style=display:none><tbody id=answer-template><tr><td>{{TASK}}<td>{{NAME}}<td>{{LANGUAGE}}<td>{{SIZE}}</table><script>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 getAnswers(){jQuery.ajax({url:answersUrl(page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),e.has_more?getAnswers():process()}})}function process(){answers.forEach(function(e){var s=e.body_markdown.split("\n").filter(function(e){return"#"==e[0]});s.forEach(function(s){var r=s.match(NUMBER_REG)[0],t=(s.match(SIZE_REG)||[0])[0],a=s.match(LANGUAGE_REG)[1],n=e.owner.display_name;entries.push({task:r,user:n,language:a,size:t})})}),entries.sort(function(e,s){var r=e.task-s.task;return r?r:e.size-s.size});for(var e=0;e<entries.length;e++){var s=jQuery("#answer-template").html();s=s.replace("{{TASK}}",entries[e].task).replace("{{NAME}}",entries[e].user).replace("{{LANGUAGE}}",entries[e].language).replace("{{SIZE}}",entries[e].size),s=jQuery(s),jQuery("#answers").append(s)}}var QUESTION_ID=52152,ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",answers=[],page=1;getAnswers();var SIZE_REG=/\d+(?=[^\d&]*(?:<(?:s>[^&]*<\/s>|[^&]+>)[^\d&]*)*$)/,NUMBER_REG=/\d+/,LANGUAGE_REG=/^#*.*?,\s*\[*([^,\]]+)/,entries=[];</script>
Tabla de clasificación combinada (2015-07-30 20:00 UTC)
User / Task 1 2 3 4 5 6 7 8 9 A TOTAL Tie breaker (if any)
DLosc 2 2 3 2 2 2 2 3 2 2 22
Sp3000 2 2 2 2 2 3 2 2 2 2 21
Doorknob 2 2 2 2 2 2 2 2 2 2 20
mathmandan 2 2 2 2 2 2 2 2 2 2 20 Combined byte count.
MickyT 2 2 2 2 2 2 1 2 2 2 19
Alex A. 2 1 2 2 2 2 1 2 2 2 18
Jacob 2 2 2 2 2 1 0 0 0 2 13
alephalpha 2 2 2 0 2 2 0 0 2 0 12
Martin Büttner 2 0 0 2 2 0 0 2 2 2 12 Combined byte count.
kirbyfan64sos 1 2 2 0 2 X 0 2 0 3 12 Per-language wins.
Maltysen 3 0 0 0 3 2 1 X 2 0 11
plannapus 2 2 0 0 2 2 0 2 0 2 10
jimmy23013 0 0 2 3 0 0 3 2 0 0 10 Solved tasks.
Tom 0 3 0 0 2 2 0 X 3 0 10 Combined byte count.
FryAmTheEggman 1 0 2 0 2 0 2 0 2 0 9
Vioz- 1 0 2 2 2 2 0 0 0 0 9 Combined byte count.
Toby Speight 2 0 0 0 2 2 0 0 0 2 8
Ismael Miguel 0 0 0 0 2 2 0 0 0 2 6
Pulga 0 2 2 0 0 0 0 0 0 2 6 Combined byte count.
flawr 2 0 2 0 0 0 0 0 0 0 4
manatwork 2 0 0 0 0 2 0 0 0 0 4 Combined byte count.
TheNumberOne 1 0 0 0 2 0 0 0 0 0 3
Las tareas marcadas con X
están presentes pero no son válidas.
La tabla de clasificación combinada se ha construido a mano. Por favor dime si hay algún error.
1 Los idiomas cuentan como diferentes si no son versiones diferentes del mismo idioma, por lo que solo hay un JavaScript, un Python y un TI-BASIC, pero C, C ++, Octave y MATLAB son cuatro idiomas diferentes.
2 Si resuelve la tarea n usando el lenguaje L en x bytes, otra persona resuelve la misma tarea en el mismo idioma con el mismo número de bytes, cambia al idioma M y revierte su edición, el otro respondedor mantendrá el punto de bonificación.
3 El número de puntos obtenidos de las reglas de puntuación 1, 2 y 3 (en ese orden), el recuento combinado de bytes de todas las tareas resueltas (menor es mejor) y, finalmente, el conteo de votos (mayor es mejor) sirven como desempate.
Respuestas:
Tarea 1, GolfScript, 8 bytes
La misma idea que la respuesta de Martin CJam .
Tarea 2, QBasic,
7471 bytesProbado en QB64 con la expansión de sintaxis desactivada. 1 La mayor parte del programa prueba si el número dado
a
es primo tomandoa
mod cada número 2 <=i
<a
y multiplicando los resultados. El resultado es quer
es 0 si el número no es primo y de lo contrario no es cero. La última línea usa bitAND
a bit con división entera por 2 para verificar si la representación binaria dea
es todos unos,a
es decir, tiene la forma 2 n -1. Multiplicando esto porr
0 da (falso) si un número no es un primo de Mersenne y algún valor distinto de cero (verdad) de lo contrario.?
es un acceso directo paraPRINT
.El primer Mersenne más grande que probé, 8191, da el resultado de
1.#INF
... ¡que todavía es verdad! (Lo verifiqué con unaIF
declaración para asegurarme).1 Esto no cambia la semántica del programa. Si escribe el código anterior en el QBasic estándar de DOS, se formateará automáticamente con espacios adicionales, pero se ejecutará exactamente igual.
Tarea 3, Pyth, 6 bytes
Lee una lista de estilo Python de stdin. La magia principal aquí es el
c
operador de salto: dado un int y una lista, divide la lista en n partes. Entoncesc2SQ
corta la lista de entradas ordenadas a la mitad. Convenientemente, cuando la longitud es impar, la primera mitad es la más grande, por lo que la mediana es siempre el último elemento de la primera mitad. Este es ele
nd de lah
ead de los resultados de corte.Tarea 4, CJam, 26 bytes
Esto podría acortarse, sospecho.
Algoritmo:
El hecho de que sea un bucle do-while se encarga del caso 0.
Tarea 5, Bash, 50 bytes
No hay mucho que explicar.
Tarea 6, Python, 78 bytes
Requiere Python 2. Los operadores de desigualdad de encadenamiento de Python se pueden explotar muy bien aquí.
Tarea 7, ActionScript, 82 bytes
ActionScript es miembro de la familia ECMAScript. Este código requiere ActionScript 2, ¡mucho mejor para el golf de código porque uso funciones obsoletas como en
chr
lugar de la versión 3String.fromCharCode
!La salida es al panel de la consola:
Tarea 8, Pip,
919 bytesLa solución regex no funcionó, así que aquí hay una con operaciones de cadena.
Repositorio de Github para Pip .
Toma las dos cadenas como argumentos de línea de comandos. Cuando
a
es una subsecuencia, genera un entero positivo (verdad); de lo contrario, el resultado es nulo (falso), que no produce salida.Explicación:
Tarea 9, Prólogo (SWI), 68 bytes
Prolog no suele ser nada competitivo en el golf de código, por lo que estoy bastante contento con esta solución.
Define un predicado
m
con parámetros de entradaL
para la lista yN
para el número y el parámetro de salidaR
. La definición dem
es una triple disyunción:L
se puede unificar con[H|T]
, es una lista con al menos un elemento. Llame de formam
recursiva al principio y al final de esa lista, y vuelva a unir los resultados en una nueva lista unificada conR
.L
se puede unificar con[]
, unifiqueR
con[]
también.L
se supone que es un número;L*N
se calcula y se asigna aR
.Ejemplo ejecutado usando
swipl
Ubuntu:Tarea 10, C,
114112106 bytesProbado con
gcc
en Ubuntu. Define una funciónt
que toma un argumento entero. Utiliza tresfor
bucles para la salida, muy condensados a través del abuso macro. El uso del carácter de retroceso para borrar un~
resultado final en un patrón de espacio en blanco bastante extraño, peroThe output may be surrounded by any amount of whitespace as long as it looks like in the example.
Ejemplo de ejecución de
t(3)
:fuente
a.c
como una subsecuencia deabc
.¡Huzzah, primero en completar todas las tareas! \ o /
Tarea 1, Perl, 32 bytes
+1 byte para la
-p
bandera. Comentario: Perl es raro .Tarea 2, CJam, 14 bytes
Mi primer programa CJam!
Tarea 3, GolfScript, 8 bytes
Evalúe la entrada STDIN, ordene, tome la longitud, disminuya, divida por dos, luego tome el elemento de la matriz ordenada en ese índice.
Tarea 4, Python, 77 bytes
Gracias a @ mbomb007 por reducir 24 (!) Bytes, y a @ Sp3000 por otros 11.
Tarea 5, Java, 66 bytes
Aburrido. Eliminé un lenguaje detallado aquí para dejar espacio para los idiomas más golfistas más adelante.
Tarea 6, Bash, 39 bytes
Gracias a @manatwork por enseñarme acerca de cómo recortar
%j
10 bytes en el proceso.Tarea 7, JavaScript, 148 bytes
Genere una cadena de 64
x
's, luego reemplácelos con una función de devolución de llamada que devuelva uno aleatorio de esos caracteres si aún no está en la matriz de caracteres utilizados.Tarea 8, óxido, 130 bytes
Sí, Rust es muy, muy malo en el golf.
Tarea 9, Avestruz, 18 bytes
Versión 0.7.0 . Inspecciona la matriz, realiza una sustitución de expresiones regulares para cambiar los números a sus versiones multiplicadas y luego evalúa la cadena resultante nuevamente.
Tarea 10, Ruby, 58 bytes
"\n"
es un carácter más largo que"{actual newline}"
, que es un carácter más largo que$/
. Gracias a @ MartinBüttner por eliminar {bytes indeterminados pero grandes} con varios trucos de magia negra.fuente
$(…)
→`…`
.[ `date +%j` = 001 ]
O incluso((`date +%j`<2))
. (Suponiendo que GNUdate
, que ciertamente admite el formato “% j día del año (001..366)”.)Tarea 1, 3var,
1413 bytes( Página wiki de Esolang para 3var )
Toma entrada a través de un punto de código, por ejemplo, el espacio es 32.
Afortunadamente, todas las operaciones que necesitamos para implementar la fórmula
n^2 (n-1)^2 / 4
son caracteres únicos (decremento, multiplicación y cuadratura), sin embargo, se necesitan 3 bytes para establecerB
2 (restablecimiento-incremento-incremento).Tarea 2, Retina,
3833 bytes( Repositorio de Github para Retina )
Cada línea va en un archivo separado, pero puede probar lo anterior como está con la
-s
bandera (reemplazando<empty>
con nada). La entrada debe ser unaria con 1s, por ejemplo,1111111
para 7.Esto es lo que hace cada sustitución de expresiones regulares (especificada por un par de líneas):
2
,1 + composite
onot power of 2
con nada.Esto agrega un extra
1
a los primos de Mersenne, mientras que todos los demás números se borran.Tarea 3, Raqueta, 71 bytes
Los lenguajes parecidos a Lisp son demasiado verbales. Ejemplo de ejecución:
Tarea 4,> <>, 31 bytes
( Página wiki de Esolang para> <> )
Lo anterior es de 28 bytes y requiere el
-v
indicador en el intérprete de Python para otros 3 bytes , por ejemplo, ejecutar comoLo bueno de> <> aquí es que podemos calcular los dígitos uno por uno a través del módulo y la división, lo que da los dígitos en orden inverso, perfecto para imprimir una pila.
Tarea 5, paréntesis,
14481386 bytes( Repositorio de Github para Parenthetic )
Tengo una respuesta CJam para esto que es más corta que la cadena en sí, pero no puedo usarla, así que pensé que iría para el otro lado.
Código generador de Python 3:
Aquí está el código similar a Lisp:
Aparentemente estaba bien anular
define
nombrandog
como()()
, lo que ahorró muchos bytes.Tarea 6, CJam, 26 bytes
Comprueba que la
[month day]
parte de la matriz de hora local es menor que[1, 2]
.Tarea 7, Python, 73 bytes
Solo una implementación sencilla de Python 3.
Tarea 8, Preludio,
4641 bytes( Página wiki de Esolang para Preludio )
Creo que esto funciona, probablemente todavía es golfable, pero es la primera vez que hago un golf no trivial en Prelude. El formato de entrada es
<needle>NUL<haystack>
, dondeNUL
está0x00
. Esto funciona mejor conNUMERIC_OUTPUT = True
el intérprete de Python, ya que eso lo hará salir1
o0
según corresponda.Elegí Prelude porque hay dos propiedades que lo hacen muy agradable para esta tarea:
Esto hubiera sido aún mejor si Prelude tuviera un operador NOT.
Aquí está el desglose:
(-5 bytes gracias a @ MartinBüttner)
Tarea 9, Mathematica, 4 bytes
Algo así
2 {{0, 1}, {1, 0}}
es implícitamente la multiplicación en Mathematica, por lo que esto pone los argumentos uno al lado del otro.Como lo señalaron @MartinButtner y @alephalpha ,
1##&
hay otra respuesta de 4 bytes. Ver el primero para una explicación.Tarea 10, Carril,
246237 bytes( Página wiki de Esolang para Rail )
No podía dejar pasar la oportunidad de hacer una tarea relacionada con el tren en Rail :) El espacio en blanco parece bastante fácil de jugar, pero con la ramificación que ocupa tres líneas, se necesitará un poco de trabajo para compactar.
La entrada es un número entero a través de STDIN, pero debe haber un EOF. La parte superior izquierda
es un bucle atoi que convierte la entrada en un número entero sin EOF (verificado por la
e
instrucción).La función
f
en las últimas tres líneas tomax, y, n
y genera losx
n
tiempos de cadena , separados pory
. La función es recursiva, con unan
disminución de uno cada vez hasta que se convierte en cero.f
se llama tres veces, proporcionando diferentes cadenas para cada fila. Extrañamente, Rail permite que los nombres de las variables estén vacíos, lo que ahorra algunos bytes.Desafortunadamente, la mayoría de los bytes provienen
(!x!)
, lo que muestra la parte superior de la pila y lo asigna a variablex
, y(x)
que empujax
a la pila. Esto es necesario porque no hay un operador duplicado en Rail, por lo que(!x!)(x)(x)
es la única forma de copiar la parte superior de la pila.fuente
Tarea 1, CJam, 7 bytes
Solo quería obtener la solución (presumiblemente) óptima de CJam para esto. Utiliza el hecho de que la suma de los primeros n cubos es el cuadrado del enésimo número triangular, que es en sí la suma de los primeros n enteros.
Pruébalo aquí.
Tarea 4, Fisión,
17388786968 bytesRepositorio de GitHub para Fission.
Mi segundo programa de fisión razonablemente complicado. :)
El formato de entrada es un poco raro. Para admitir entradas negativas, se espera que el primer carácter sea
+
o-
indique el signo. El valor del byte del segundo carácter es la magnitud de la entrada (ya que Fission no puede leer enteros decimales de forma nativa). Entonces, si lo desea111
, lo pasaría+o
en STDIN. Y si quieres-56
lo pasas-8
. En lugar de+
y-
puede usar cualquier carácter con un código de carácter inferior o superior, respectivamente. Esto puede ser útil para pasar en algo así como-n
(que suecho
tratamiento puede ser que un argumento) como, por ejemplo,0n
.Veamos cómo podemos encontrar la representación negabinaria de un número positivo. Queremos calcular el número del bit menos significativo al más significativo (empujaremos esos bits en una pila e imprimiremos todos al final para obtenerlos en el orden correcto). El primer dígito es la paridad del número, y dividimos el número por 2 para continuar el procesamiento. El siguiente dígito ahora es negativo (con valor -2), pero debe tenerse en cuenta que este bit se establecerá siempre que el bit 2 se establezca en un número binario normal. La única diferencia es que necesitamos contrarrestar el -2 con dígitos positivos de mayor valor. Entonces, lo que hacemos es esto:
1
, incrementamos el número restante en 1 para contrarrestar el bit negativo (la diferencia entre un negabit y un bit es una vez el valor del siguiente bit más significativo).Una gran simplificación de los resultados de código de darse cuenta de que la adición de condicionalmente uno aquí es equivalente al redondeo del número hasta cuando entero dividiendo (si el bit descartado era 1, incrementamos el resultado entero-dividido por 1).
Entonces, el siguiente bit es solo un valor positivo nuevamente para que podamos determinarlo normalmente. Eso significa que queremos un bucle que calcule dos bits a la vez, alternando entre redondear hacia arriba y hacia abajo para el número restante, pero queremos ingresar el bucle en el medio, por lo que comenzamos con el redondeo hacia abajo.
¿Cómo podemos manejar enteros negativos? El problema es que Fission realmente no puede hacer aritmética arbitraria en enteros negativos, porque las masas siempre son no negativas. Entonces, uno tendría que hacer algo realmente complicado, como trabajar con la magnitud y hacer un seguimiento de la señal en otro lugar. Sin embargo, la representación negabinaria de un número negativo se puede calcular en función de un número positivo relacionado:
Si n es negativo, calcule la representación negabinaria de n / 2 (redondeado hacia arriba ) y agregue la paridad de n .
Este es exactamente el primer paso de nuestro bucle de dos bits. Entonces, todo lo que tenemos que hacer es iniciar el ciclo en un punto diferente si el signo es negativo.
La mayoría de los ahorros de los 173 bytes originales provienen de estas ideas que me permitieron comprimir tres verificaciones de paridad y un bucle de dos secciones en un solo bucle con una sola verificación de paridad.
Esta publicación será demasiado larga si explico todo el código en detalle, pero señalaré algunas secciones para proporcionar el diseño aproximado del flujo de control, y puede descifrar los detalles con la referencia de Fisión.
A partir de
D
, esto lee un bit de signo en la energía y la magnitud en la masa de un átomo que termina en[
(yendo hacia la derecha). Este bit de signo se alternará después de cada pasada a través de la verificación de paridad y determinará si retenemos la mitad redondeada hacia abajo o hacia arriba de la entrada del bucle.Este es el ciclo que calcula los bits individuales y alimenta la mitad correcta en la siguiente iteración. Los
S
yJ
se usan para crear una copia de la mitad derecha basada en el bit de signo actual, losX
s hacen la copia. La>
esquina superior derecha calcula el bit real que luego se envía a la pilaK
para recuperarlo más tarde. Creo que el diseño de la esquina superior derecha es bastante ingenioso y definitivamente vale la pena estudiarlo en detalle si estás interesado en Fission.El
%
es un interruptor que retroalimenta el número al bucle siempre que sea mayor que 0.Una vez que el número llega a 0, se refleja hacia abajo. Esto inicia otro ciclo que recupera los bits de la pila, los agrega al código de caracteres
0
y los imprimeO
. El programa termina una vez que la pila está vacía, porque el átomo de control terminará siendo empujado sobre la pila (y luego no quedan más átomos en movimiento).Tarea 5, Preludio,
21917996 bytesPágina de Esolangs para Preludio.
Intérprete de fragmentos de pila para Prelude.
Esto comenzó como un programa Preludio estándar de salida fija hecho a mano con tres voces. Después de conversar con Sp3000, decidí probar con una sola voz. Resultó que esto funcionó bastante bien, porque es mucho más fácil reutilizar letras antiguas. Entonces Dennis me dio algunas pistas y encontré la versión actual: la idea es empujar todos los desplazamientos de la letra
h
a la pila de una sola voz en orden inverso, y luego imprimirlos uno a la vez en un bucle.h
se elige porque no hayh
en la cadena (lo cual es importante; de lo contrario, el0
desplazamiento terminaría el ciclo) y porque minimiza la codificación de los desplazamientos en términos de desplazamientos negativos y de dos dígitos.La codificación offset se generó con este script CJam .
Tarea 8, Mathematica, 28 bytes
Yay para empotrados. (El nombre de Mathematica es un poco extraño aquí ...
LongestCommonSubsequence
encuentra la subcadena común más larga mientrasLongestCommonSequence
encuentra la subsecuencia común más larga ).Tarea 9, J, 1 byte
Igual que las respuestas APL y K, pero parece que nadie ha tomado J todavía.
Tarea 10, Retina,
6760 bytesRepositorio de GitHub para Retina.
Cada línea va en un archivo separado y
<LF>
debe reemplazarse con un carácter de nueva línea y<empty>
debe ser un archivo vacío. También puede poner todo esto en un solo archivo y usar la-s
opción, pero eso no permite incrustar caracteres de nueva línea en lugar de<LF>
todavía. Podrías emular eso haciendo algo comoComo muestra el ejemplo anterior, se espera que la entrada sea unaria. La idea del código es crear tres copias de la entrada unaria (menos 1), cada una con una copia de la línea correspondiente. Luego, repetidamente repetimos los últimos nueve caracteres delante de a
1
hasta que todos los1
s hayan desaparecido, repitiendo las líneas según sea necesario. Finalmente, eliminamos el arrastre extraño~
.fuente
Eh, comenzaré con una pareja, supongo. Primera vez jugando al golf.
Tarea 1, Python,
3821 bytesSuma una lista de todos los cubos hasta x. Expresión cambiada gracias a xnor
Tarea 2, TI-Basic 89, 244 bytes
No estoy 100% seguro en este caso, se probará cuando encuentre baterías nuevas para mi calculadora. isPrime es un incorporado, ipart es parte entera (2.3 -> 2)
Tarea 3, Perl,
4534 bytesarchivo perl 1 2 3 4 -> 2. Guardado un par de bytes gracias a @nutki. Impreso en lugar de guardar en variable y luego imprimir variable.
Tarea 4, Ruby,
4340 bytesAl menos funciona en 1.9, no sé acerca de 1.8. En binario, '10' * 16 (o 2863311530) más un número, xor con ese 10101010 ... es el negbinary. Emite una representación de cadena con comillas (3 -> "111" en lugar de 3 -> 111). No puedo encontrar matemáticas para escribir x en menos caracteres.
Tarea 5, Malbolge,
682354 bytesPrueba en línea aquí. Piensa que esto es lo más breve posible. Golfé tanto como pude. Guardado 300 bytes, entonces ¿dónde?
Tarea 6, bash,
625040 bytesDescubrí aproximadamente% j de otra publicación.
Tarea 10, Befunge-98, 121 bytes
Cambiado a befunge-98. El antiguo era Befunge-93,
227157147bytes. Hongos usados , escritos en Haskell para pruebas. Usé "do multiple times k" y agregué caracteres individuales a la pila con '. Tengo la sensación de que puede reducirse a 110 o menos, pero ya he pasado demasiado tiempo en esto ...fuente
lambda n:(n*n-n)**2/4
0=fPart(expression) rather than
iPart (expresión) = expresión` en su respuesta BÁSICA TI-89.Primero: la tarea 6 técnicamente NO cuenta; Subí unc hace menos de una hora. Sin embargo, casi lo subí esta mañana, pero primero decidí escribir un conjunto de pruebas. Idiota.
Entonces, de todos modos, aquí va!
Tenga en cuenta que la mayoría de las cosas inc están intencionalmente al revés, por lo que
&&
realmente significa||
y tal, por eso algunas operaciones se ven raras (por ejemplo, usar-
para calcular el cubo).Tarea 1, Haskell, 21 bytes
Tarea 2, Hy, 135 bytes
Tarea 3, Dart, 37 bytes
Mi primera función Dart!
Tarea 5, INTERCAL, 1047 bytes
Tarea 6, unc, 157 bytes
Tarea 8, rs, 42 bytes
Demo en vivo.
Tarea 10, Pyth, 46 bytes
Demo en vivo.
fuente
!include
s. Sin embargo, no estoy completamente seguro de cuál.stdio.h
, la segunda estime.h
. Necesito ambos.unc
utiliza para compilar el código C? GCC funcionará bien sin élstdio.h
. No estoy segurotime.h
.Tarea 1, APL, 7 bytes
Puede probarlo en línea usando ngn / apl, aunque funcionará con cualquier implementación de APL que tenga por defecto un origen de índice 0.
Esto divide cada número entero de 0 a la entrada (
⍳⎕
) -1 conmutando (⍨
) los argumentos al operador de potencia (*
). El vector resultante se reduce sumando (+/
) y se devuelve un escalar.Tarea 2, Julia, 42 bytes
Esto crea una función anónima que acepta como entero como entrada y devuelve un booleano. Para llamarlo, dale un nombre, por ejemplo
f=n->...
.Primero usamos la función incorporada de Julia
isprime
para verificar sin
es primo. Si es así, verificamos quelog2(n+1)
sea un número entero. Si es así,n
se puede escribir como2^k-1
para algunosk
, y por lo tanton
es un primo de Mersenne.Tarea 3, ELI , 19 bytes
Esto crea una mónada
f
que devuelve la mediana del vector de entrada.Ungolfed + explicación:
Ejemplos:
Tarea 4, octava, 39 bytes
Esto crea un identificador de función que acepta un entero como entrada y devuelve la cadena negabinaria asociada. Para llamarlo, asígnele un nombre, por ejemplo
f=@...
, y ejecute confeval(f, <input>)
.Puedes probarlo en línea .
Tarea 5, CJam, 47 bytes
La cadena simplemente se imprime en STDOUT. Puede probarlo en línea si se siente tan inclinado.
Tarea 6, lote de Windows, 46 bytes
La variable
%date%
contiene la fecha actual en el formularioThu 06/25/2015
. Podemos seleccionar el mes y día por conseguir la subcadena de longitud 5 después de saltarse los primeros 4 caracteres:%date:~4,5%
. A partir de ahí, solo verificamos si es el 1 de enero y decimos feliz año nuevo si es así.Tarea 7, Pyth, 26 bytes
Primero asignamos
G
al rango 13312 hasta 19894 inclusive. Luego hacemos un bucle 64 veces, y en cada iteración barajamosG
(.SG
), eliminamos y devolvemos el último elemento (.(
) e imprimimos su representación de caracteres (pC
).Puedes probarlo en línea .
Tarea 8, Ruby, 36 bytes
Esto define una función
f
que acepta dos cadenasa
yb
dóndea
está la cadena para encontrar dentrob
.Todo menos los caracteres en
a
se eliminan delb
uso.tr()
y verificamos si el resultado contienea
exactamente el uso[]
. Esto devolveránil
si no se encuentra la cadena, por lo que podemos obtener un valor booleano mediante el uso!
de.nil?
.Tarea 9, R, 16 bytes
Esto crea un objeto de función sin nombre que acepta cualquier tipo de matriz o matriz
x
y un número enteron
y multiplica cada elemento dex
porn
. Si lo desea, puede probarlo en línea .Tarea 10, Python 3, 92 bytes
Muy claro. Puedes probarlo en línea .
fuente
Tarea 1,> <>, 10 + 3 = 13 bytes
Ejecute esto usando el intérprete oficial de Python usando la
-v
bandera (a un costo de 3 bytes). Esto cuadra la cantidad(n - n*n)
y divide por4
, que por supuesto es equivalente a cuadrar(n*n - n)
y dividir por4
.Tarea 2, GAP,
6362 bytes(Ahorró un espacio escribiendo la igualdad al revés).
Tarea 3, R,
4339 bytesGracias a Plannapus por la buena mejora!
Tarea 4, Piet,
1551351155 * 19 = 95 CODELsPruebe usando este intérprete en línea , con tamaño de códec 13. O use su intérprete preferido - ¡avíseme si tiene uno que le guste!
Hacer que salga en
0
lugar de la cadena vacía para la entrada0
fue inconveniente. Usé un si-entonces cerca del principio para encargarme de este caso; luego un ciclo while para calcular los dígitos en el caso distinto de cero, y finalmente otro ciclo while al final para generar los dígitos de la pila.¡Muchas gracias a Sp3000 por algunos comentarios muy útiles, que me ayudaron a guardar algunos codeles!
Tarea 5, Lua, 52 bytes
Puedes probarlo aquí .
Tarea 6, LaTeX,
157139136127128 bytesSi el producto del día y el mes es
1
, imprima el mensaje; de lo contrario, nada. (El día de Año Nuevo es particularmente conveniente para este diseño: dado que el resultado que estamos buscando es1
, solo necesitamos unaor
declaración. La declaraciónn
thor
especifica el comportamiento del valorn
).Nota: a mi versión anterior le faltaba el retorno de línea, lo cual fue un error. (Intenté probar esta función, pero realmente probarla correctamente podría llevar un tiempo ...)
Mi versión original usaba el
calc
paquete, que era mucho más conveniente que mi versión actual. ¡Algo a tener en cuenta para la "vida real"!Tarea 7, Ruby, 62 bytes
Tarea 8, JavaScript, 78 bytes
Solución recursiva, probando si
l
es una subcadena dem
. Sil
está vacío, entonces los!l
resultadostrue
y la función termina. (En este caso,l[0]
no está definido, pero JavaScript está bien con eso). De lo contrario, busca la primera instancia del[0]
inm
. Si no encuentra uno, entoncesm.indexOf(l[0])
da como resultado-1
y asíu
resulta0
y la función termina.De lo contrario, elimina la primera entrada
l
y las primerasu
entradas dem
y continúa comprobando.Tarea 9, Python,
7260 bytesProfundiza hasta el "nivel más bajo", donde
a
ya no hay una lista, solo un número entero, luego lleva a cabo la multiplicación.¡Muchas gracias a Dennis por salvarme 12 bytes!
Tarea 10, Groovy, 81 bytes
Probarlo aquí . Originalmente intenté implementar algo como el
.join()
método de Python para cadenas, que combina cadenas con una "cadena de enlace" particular (como los enlaces entre vagones de tren). Pero eso costó mucho más de lo que ahorró.Espero no haber topado con ninguna convención para obtener respuestas aceptables en estos idiomas, pero avíseme si la tengo.
¡Gracias a Dennis por un fantástico desafío!
fuente
except:return n*a
guarda algunos bytes para la tarea 9. Para la tarea 1, contaría el-v
indicador como un byte.-v
indicador coni
(aunque creo que sería bueno si se mencionaran ambas versiones, para una prueba más fácil).-
,v
). Solo quise decir que tiene la opción de tomar la entrada como un punto de código a través de lasi
instrucciones.Tarea 1, Pyth, 5 bytes
Toma el número de stdin. Gracias @Jakube por señalar lo inútil
U
.Tarea 6, javascript, 56 bytes
Tarea 7, CJam, 16 bytes
Genera rango, baraja, elige los primeros 64 y asigna la suma del valor inicial y la conversión a carácter. 14 caracteres, 16 bytes.
Tarea 8, octava, 23 bytes
Define la función anónima.
Tarea 5, PHP, 45 bytes
Sin compresión, solo impresiones.
Tarea 9, APL 1 byte
Lo mismo que la respuesta K.
fuente
.slice(4, 10)
?/an 01/.test(Date())
.)Tarea 1, R,
2119 bytesBastante sencillo. Entrada de STDIN.
Tarea 2, Perl,
4066 bytesSe agregó un corrector principal (reigax del corrector de números primos Abigails)
Tarea 3, PARI / GP,
2422 bytesLa primera vez que toqué esto. Puede que tenga que aprender un poco más.
Tarea 4, T-SQL, 235 bytes
Función de tabla en línea usando CTE recursivo. Muy grande, pero divertido de hacer.
Usar
Tarea 5, GAP, 48 bytes
Tarea 6, Excel,
5148 bytesGracias a @Bond por los 3 bytes.
Tarea 7, Python 2.6,
989385 bytesEsta es la primera vez que trato de hacer algo en Python, por lo que podría ser mucho mejor. Gracias @Dennis y @Jacob por los excelentes consejos
Tarea 8, TCL, 57 bytes
Es una pena que eliminar espacios en blanco mate esto
Tarea 9, Pike, 53 bytes
Una función que devuelve la matriz multiplicada.
Tarea 10, Powershell, 88 bytes
Una función Powershell. Creo que puedo acortarlo un poco, pero aquí está en este momento.
Y finalmente terminado :)
fuente
=IF(TEXT(NOW(),"md")="11","Happy New Year!","")
.l[:63]
debería funcionar y(13312,19894)
es más corto que las constantes hexadecimales (y la suma).range(19892,0x4DB5+1)
me dio[19892, 19893]
Tarea 2, J, 10 bytes
Antepone un booleano 0 o 1 si la entrada es primo para su representación binaria, luego toma el producto. Funciona en la versión actual de J.
Tarea 5, HTML, 45 bytes
Tarea 6, pescado, 53 bytes
Basado en la respuesta bash.
Tarea 8, APL, 12 bytes
Esta es una expresión de función. Compara el orden de los caracteres encontrados en la cadena más grande con lo que se esperaría si se ordenaran.
Tarea 9, K, 1 byte
Debería funcionar en cualquier versión. Las operaciones aritméticas se distribuyen en matrices.
fuente
abc
caxbxc
.Tarea 1, Ruby, 40 bytes
Primera vez en escribir algo en Ruby. Probado con rubí 1.8.7.
Tarea 2, R, 50 bytes
Computa
p
, verifica si es un número entero y si nyp son números primos.Tarea 5, PostgreSQL, 54 bytes
Tarea 6, Lua, 55 bytes
Tarea 8, Python, 65 bytes
Uso:
Tarea 10, Julia, 73 bytes
Gracias a @AlexA. por ayudar a acortar este código! Ejemplo de salidas:
fuente
log2
f(n)=
conn->
) y cambiando1:(9*n-1)
a simplemente1:9n-1
.\n
como 1 bytes, por costumbre.(" "*"_"^6*" ")^n
eso, puede usar" ______ "^n
(también para la| |
parte). 70 Bytes:n->print(" ______ "^n*"\n"*"| | "^n*"\n"*(" ()--() ~"^n)[1:9n-1])
. (Sin embargo, el espacio en blanco entre las barras no se muestra aquí)Tarea 1, Haskell, 17 bytes
Tarea 2, Mathematica, 30 bytes
Tarea 3, JavaScript, 46 bytes
Tarea 5, MATLAB, 47 bytes
Tarea 6, Ruby, 56 bytes
Tarea 7, Python, 106 bytes (sangría con
\t
)Recuerde que el uso directo de
list(set(s))
qué no trabaja aquí ya que esto provocará una distribución de probabilidad no uniforme en el espacio de todas las posibles cadenas debido a la reordenación de miembros de la lista.fuente
(x*x-x)^2/4
?if c not in s:s+=c
todo en una línea, ahorrando algunos caracteres. También0x3400
se puede reemplazar con13312
, que es un carácter más corto (y de manera similar para 0x4db5). Finalmente, no cambiará el número de caracteres, pero en caso de que no le guste la sangría de la pestaña, puede sangrar con un solo espacio.Tarea 1, Haskell, 15 bytes
Tarea 2, Julia, 28 bytes
Tarea 3, octava, 30 bytes
Tarea 5, Yacas , 45 bytes
Tarea 6, Mathematica, 46 bytes
Tarea 9, PARI / GP, 10 bytes
fuente
Tarea 3, Clip, 13 bytes
Otra version:
El
`
parecía costar demasiado.Tarea 4, KSFTgolf, 16 bytes
El intérprete está aquí. No estoy seguro de lo que estoy haciendo ... Imprimirá el negabinario y luego se bloqueará.
Hay un error en el intérprete. O podré reducirlo a 12 bytes usando la conversión de base incorporada (pero solo funciona con enteros positivos):
Versión original de CJam:
Intenté Pip, Avestruz, Clip y Burlesque para averiguar si hay un esolang con negabinary incorporado. Ninguno de ellos funcionó. Se utilizó KSFTgolf
numpy
, que parecía tener un comportamiento extraño y conveniente cuando la base es negativa. Pero no es fácil hacerlo funcionar con números no positivos.Tarea 7, CJam, 15 bytes
Tarea 8, APL, 21 bytes
Pruébalo en línea.
fuente
Tarea 2, x86 masm, 40 bytes
(excluyendo encabezado, cuadro de mensaje, etc. - solo bytes relevantes)
Tarea 3, C, 136 bytes
Compilar usando
gcc -o Prime main.c
Tarea 10, C ++, 478 bytes
Compilar usando
g++ -o Trucks main.cpp
C & C ++ se puede acortar pero agregaría un error del compilador. No conozco las reglas exactas, así que intenté dejar el código sin errores de compilación.
fuente
Tarea 1, Python, 35 bytes
Tarea 3, CJam, 9 bytes
Tarea 4, JavaScript,
5553 bytesTarea 5, Pyth, 46 Bytes
Tarea 6, C #, 65 bytes
fuente
Tarea 1, jq, 24 bytes
Tarea 6, PostgreSQL, 54 bytes
fuente
Tarea 1, Cjam, 7 bytes
Editar: Acabo de notar que Martin publicó esto antes que yo. Intentaré otra cosa ...
Tarea 3, Python, 30 bytes
Python 2.
Tarea 5, ///, 45 bytes
/// solo hará eco de algo sin ningún
/
carácter.Tarea 7, Pyth, 19 bytes
Programa. Por favor, dime si arruiné las matemáticas. Pruébalo aquí
Tarea 9, octava, 9 bytes
Identificador anónimo de funciones. Octave hace esto automáticamente con matriz * escalar.
fuente
.S
barajadura, y puedes usars
um en lugar dejk
.No he encontrado tiempo para intentarlos todos, pero aquí hay un comienzo
Tarea 1, CC, 8 bytes
Entrada y salida a la parte superior de la pila, según la
dc
convención.Tarea 5, Emacs Lisp, 46 bytes
Abuso de las reglas:
Lo mejor que pude manejar al desempacar de forma comprimida fue 55, en Perl:
(los caracteres no imprimibles anteriores son confusos por SE, pero como no es mi respuesta, no lo estoy arreglando)
Tarea 6, SQL, 54 bytes
Considero que los primeros diez días de enero son días "apropiados" para este saludo, pero puede adaptarse al gusto. La
now() LIKE
construcción funciona más corta que la extracción del día del año conDATE_FORMAT(now(),'%j')
.Tarea 10, sed, 58 bytes
Entrada en unario.
fuente
strstr
seches para subcadenas, no subsecuencias. Me temo que la tarea 5 es kolmogorov-complejidad, por lo que buscar la palabra de un diccionario puede ser inteligente, pero no está permitido.Tarea 5, MarioGolf , 50 bytes
Este fue un lenguaje que desarrollé por algún tiempo.
La versión actual tiene suficiente funcionalidad para permitir ejecutar este desafío.
Puede probarlo en línea en http://htmlpreview.github.io/?https://raw.githubusercontent.com/ismael-miguel/mariogolf/master/js/testpage.html#c:Y|<pneumonoultramicroscopicsilicovolcanoconiosis|O
Actualmente, el desarrollo se detiene y la implementación está incompleta.
El último compromiso fue el 13 de marzo de 2015.
Tarea 6, PHP, 37 bytes
¡Este es realmente fácil y divertido!
Tarea 10, Javascript, 121 byes
Sí, no tan golfizado ...
Pero hace el trabajo!
Intentalo:
Mostrar fragmento de código
El código no se mostrará bien en el fragmento de pila debido a que comienza
"
en la salida. Se agregaron espacios adicionales para compensarlo.El código original se puede ejecutar en la consola de Chrome sin ningún problema, y el resultado será el esperado.
fuente
date(dM)
? Aquí devuelve "25Jun". (configuración regional establecida en en_US) Quizás "j" y "n" servirían mejor, ya que "d" y "m" devuelven los valores 0 rellenados al ancho 2.Tarea 1, CJam, 10 bytes
Intenta aquí
Tarea 5, Retina, 46 bytes
fuente
Tarea 1, octava, 15 bytes
EDITAR: pensé que agregué esto, pero parece que olvidé guardar: esto utiliza el hecho de que
sum(1^3+2^3+3^3+...+n^3) = sum(1+2+3+...+n)^2 = [n*(n+1)/2]^2
Tarea 3, Javascript, 24 bytes
fuente
Bien, primero hagamos las cosas fáciles:
Tarea 5, ASP, 45 bytes
Tarea 6, JavaScript, 46 bytes
fuente
Tarea 1, VBA, 126 bytes
No tengo idea de cómo jugar golf en VBA. No escribí un solo espacio, VBA inserta automáticamente espacios en blanco.
=f(5)
en una celda en Excel mostrará 100.Tarea 2, octava, 32 bytes
Tarea 5, Golfscript, 47 bytes
Tarea 9, MATLAB, 9 bytes
Bueno, es un comienzo ...
fuente