Sección de ladrones
La sección de policías se puede encontrar aquí .
Reto
Su tarea es superar las presentaciones de los policías en el mismo idioma y la misma versión (por ejemplo, Python 3.5 ≠ Python 3.4 , por lo que no está permitido). Un envío se supera cuando la longitud en bytes es más corta que el envío original. Solo necesita jugar al menos 1 byte para descifrar un envío. Por ejemplo, si la tarea era realizar 2 × n , y el envío fue el siguiente:
print(2*input())
Podrías superar al policía haciendo lo siguiente:
print 2*input()
O incluso esto (ya que los lambda están permitidos):
lambda x:2*x
Publique esto con el siguiente encabezado:
##{language name}, <s>{prev byte count}</s> {byte count}, {cop's submission + link}
Por ejemplo:
Python 2,
1612 bytes, Adnan (+ enlace a la presentación)lambda x:2*x
Calcula A005843 , (desplazamiento = 0).
En ese caso, ha descifrado el envío.
Tanteo
La persona con la mayor cantidad de envíos es la ganadora.
Reglas
- El envío de crack debe estar en el mismo idioma que el envío de policía.
- La misma entrada debería resultar en la misma salida (entonces a (2) = 4 debería permanecer 4).
- Para lenguajes como Python, puede importar bibliotecas estándar incluidas dentro del lenguaje. (Entonces, no numpy / sympy etc.)
- La entrada y la salida están en decimal (base 10).
Nota
Este desafío está terminado. El ganador de la sección Robbers es feersum . Los puntajes finales para el CnR se muestran a continuación:
- Feersum : 16 grietas
- Dennis : 12 grietas
- Monja permeable : 6 grietas
- Lynn : 4 grietas
- millas : 3 grietas
- Martin Ender : 2 grietas
- Emigna : 2 grietas
- jimmy23013 : 1 crack
- Sp3000 : 1 grieta
- randomra : 1 crack
- alephalpha : 1 crack
- nimi : 1 crack
- Sandía Destructible : 1 crack
- Dom Hastings : 1 crack
(**)&2
. Lo intenté2&(**)
y fallé. :((**)&2
funciona bien para mí: / pero esto también funciona.jalea ,
5 54 bytes , George V. WilliamsPruébalo aquí
Una característica oculta!
Si recordaba correctamente,
ÆḊ
(A) = sqrt (det (AA T )) es n! multiplicado por la medida de Lebesgue n dimensional de un símplex formado por n puntos de entrada y el origen en m espacio dimensional. Cuando n = 1 se degenera a la distancia euclidiana. No es tan extraño después de todo ...fuente
Ḋ
yḞ
están en el rango UTF-16. Eso haría que esta solución sea de 6 bytes suponiendo una codificación heterogénea, y 8 bytes suponiendo una codificación homogénea. Preguntando honestamente aquí.Hexagonía ,
9133 bytes, azulDesplegado:
Pruébalo en línea!
Todavía parece algo golfable pero pensé que lo publicaría antes de que FryAmTheEggman me ganara. ;)
Explicación
Aquí hay algunas rutas de ejecución codificadas por colores:
Sin embargo, estos son innecesariamente complicados debido al golf. Aquí está exactamente el mismo código con un diseño más sano:
Eso es mejor. Y finalmente, aquí hay un diagrama de memoria, donde la flecha roja indica la posición inicial y la orientación del puntero de memoria (MP):
Lo esencial es que estoy iterativamente el cálculo de los números de Fibonacci en los tres bordes marcados f (i) , f (i + 1) y f (i + 2) mientras que el seguimiento del iterador en los bordes A , B y C . Al hacerlo, los roles de estos bordes se intercambian cíclicamente después de cada iteración. Veamos cómo sucede esto ...
El código comienza en la ruta gris que realiza una configuración inicial. Tenga en cuenta que f (i) ya tiene su valor inicial correcto de
0
.Ahora el camino verde es el bucle principal.
_
y>
son solo espejos.De esta manera, el MP se mueve alrededor del triplete interno de bordes, calculando números sucesivos de Fibonacci hasta
n
llegar a cero. Luego, finalmente, se ejecuta el camino rojo:Diagramas generados con HexagonyColorer de Timwi y EsotericIDE .
fuente
Haskell,
54 bytes, xnorCurry simple
fuente
Stack Cats,
1413 bytes, feersumcon las
-nm
banderas para +4 bytes. Pruébalo en línea!De acuerdo, ese bucle estaba loco. Intenté varios enfoques, como el forzado bruto sobre un alfabeto reducido y el forzado bruto
3x+2
o5x+4
tratar de extenderlo, pero nunca esperé que la solución realmente contuviera un bucle.La mejor manera de ver cómo funciona esto es agregar un
D
indicador para la depuración (así que ejecute con-nmD
) y active la depuración para el enlace TIO anterior. Un{}
ciclo recuerda la parte superior de la pila al comienzo del ciclo y sale cuando la parte superior de la pila es ese valor nuevamente. El interior del bucle hace un poco de diversión restando y ciclando los tres elementos principales de la pila, que es cómo el bucle se ejecuta durante tantas iteraciones.fuente
Sesos,
1411 bytes, Leaky NunCalcula n 2 . Pruébalo aquí
Volcado hexadecimal:
De la asamblea:
fuente
1 + 3 + … + (2n–1)
lugar den × n
:)Lamentablemente,
776759 bytes, Sandía DestructibleTraté de leer el código fuente de este idioma pero fue demasiado confuso. Por un lado,
ip[1]
es un número de línea, mientras queip[0]
es el número de columna, mientras que lascp
coordenadas se usan al revés. Sin embargo, a vecescp
se le asigna el valor deip
. Dejé de tratar de entender lo que estaba haciendo el programa y encontré una manera de codificar la secuencia idéntica de instrucciones usando menos barras.fuente
Brachylog ,
2721 bytes, FatalizePruébalo en línea!
fuente
J,
1712 bytes, millasMás o menos lo mismo que el original solo más golfizado. :)
i:
tener+1
rango en comparación coni.
es útil (y extraño). Si usai.
aquín=0
será incorrecto pero por suerte loi:
resuelve.Pruébelo en línea aquí.
fuente
i:
ser ceros para valores negativos. Mi versión era+/@(]!2*-)i.,]
.M,
106 bytes, DennisDado n , se calcula el n º -level factorial de n . Este fue un ejercicio divertido!
El código es capaz de ejecutarse como Jelly para que pueda probarlo en línea .
Explicación
fuente
Muñeco de nieve,
5044 bytes, pomo de la puertaPruébalo en línea!
fuente
((}#1nG|#2nMNdE0nR2aGaZ::nM;aF;aM:nS;aF,nM*))
.Haskell,
1514 bytes, xnorPasé un par de horas infructuosas aprendiendo a descifrar la sintaxis "sin sentido" ...
until
En cambio, encontré esto.O para un menor melífluas 13 bytes,
until odd(+1)
.fuente
Python 2,
4340, xsotfuente
Pyke,
119 bytes, pez lodoPruébalo aquí!
Cómo funciona
fuente
hV~oX*o+
. Mi respuesta de 5 bytes fueSDmX^
~o
está ordenado.SDmX^
Sin embargo, no tengo idea de lo que hace.m
solo afecta elX
y no el^
? Eso explica mucho.m
y similar solo usa el siguiente nodo. ¿Algún comentario sobre mis documentos, etc.?05AB1E ,
74, Emignafuente
Jalea,
2221 bytes, DennisPasé varias horas leyendo el código fuente de Jelly para el último, por lo que podría utilizar esta "habilidad". Espero que @Dennis comparta con nosotros sus descubrimientos matemáticos que permitan una fórmula más corta (¡suponiendo que haya algo y no solo trucos extraños de Jelly!).
fuente
J,
2019 bytes, millasEsto calcula el producto como una suma de números de Fibonacci al cuadrado, que se calculan como una suma de coeficientes binomiales.
Afortunadamente, @miles mismo publicó el código para generar números de Fibonacci en este comentario .
fuente
Acc !! ,
526525 bytes, DLoscNo tengo idea de cómo funciona esto, pero pude detectar una pequeña mejora.
fuente
Haskell, 10 bytes, xnor
Ejemplo de uso:
map ( gcd=<<(2^) ) [1..17]
->[1,2,1,4,1,2,1,8,1,2,1,4,1,2,1,16,1]
.Cómo funciona: Desde la página de OEIS vemos que
a(n) = gcd(2^n, n)
o se escribe en la sintaxis de Haskell:a n = gcd (2^n) n
. Las funciones con el patrónf x = g (h x) x
se pueden convertir en punto libre a través de la función=<<
:,f = g =<< h
por logcd=<<(2^)
que se traduce de nuevo agcd (2^x) x
.fuente
Sesos,
149 bytes, Monja LeakyCalcula n mod 16 . Pruébalo aquí
Maleficio:
Montaje:
fuente
Python,
3917 bytes, Sandía Destructiblefuente
05AB1E,
94 bytes, EmignaPruébalo en línea!
Calcula esta función en su lugar:
fuente
Hexagonía ,
76 bytes, AdnanDesplegado:
Pruébalo en línea!
La misma idea, diseño ligeramente diferente.
fuente
MATL,
1110 bytes, Luis MendoEn lugar de hacer -1 ^ longitud (matriz), convierte los elementos en valores booleanos (que siempre son 1), los niega y toma el producto de los elementos.
fuente
Jelly,
1110, DennisVersión vectorizada del mismo enfoque.
Pruébalo en línea!
fuente
05AB1E,
108 bytes, AdnanPruébalo en línea .
fuente
µNÂʽ
por 5 bytes. Presumiblemente la versión secreta.Brachylog,
1110 bytes, FatalizePruébalo en línea!
Explicación
Brachylog es un lenguaje derivado de Prolog, cuya mayor habilidad es probar cosas.
Aquí, probamos estas declaraciones:
fuente
Jalea,
98 bytes, Dennis¡Lo siento! No pude encontrar tu solución prevista.
Esto se basa en el hecho de que
C(n+k-1, k)
es la cantidad de formas de elegirk
valoresn
con reemplazo.Nota: Esto es ineficiente ya que genera los conjuntos posibles para contarlos, así que trate de evitar el uso de grandes valores de n en línea.
Pruébelo en línea o verifique hasta n .
Más tarde encontré otra versión de 8 bytes que es lo suficientemente eficiente como para calcular n = 1000. Esto calcula los valores utilizando el coeficiente binomial y evita generar las listas.
Pruébelo en línea o verifique hasta n .
Explicación
fuente
M,
98 bytes, Dennisfuente
QBasic,
3029 bytes, DLoscfuente