Parece que cualquier modificación simple de deltas usando una función consistente casi siempre se puede hacer de otra manera más corta , Dennis . Por lo tanto, la única solución que puedo imaginar para hacer esto más difícil es introducir algún tipo de función inconsistente.
Clasificación.
Su tarea es tomar una matriz de enteros, ordenar sus deltas y volver a compilar eso para obtener la nueva matriz de enteros.
P.EJ.
Para la entrada:
1 5 -3 2 9
Obtenga los siguientes Deltas:
4 -8 5 7
Luego, ordena estos Deltas, cediendo:
-8 4 5 7
Y vuelva a aplicarlos, lo que da:
1 -7 -3 2 9
De entrada y salida
Se le dará una lista / array / table / tuple / stack / etc. de enteros con signo como entrada a través de cualquier método de entrada estándar.
Debe generar los datos modificados una vez más en cualquier forma aceptable, siguiendo el método de clasificación delta anterior.
Recibirá N entradas 0 < N < 10
donde cada número cae dentro del rango-1000 < X < 1000
Casos de prueba
1 5 -3 2 9 -> 1 -7 -3 2 9
-5 -1 -6 5 8 -> -5 -10 -7 -3 8
-8 1 -7 1 1 -> -8 -16 -16 -8 1
8 -9 3 0 -2 -> 8 -9 -12 -14 -2
-5 -2 -5 5 0 -> -5 -10 -13 -10 0
-1 9 -1 -7 9 -> -1 -11 -17 -7 9
Notas
- Como se indicó anteriormente, siempre recibirá al menos 1 entrada y no más de 9.
- El primer y último número de su salida siempre coincidirá con el de la entrada.
- Solo se acepta la entrada de salida estándar
- Se aplican lagunas estándar
- Este es el código de golf , por lo que gana el conteo de bytes más bajo.
- ¡Que te diviertas!
fuente
Respuestas:
Jalea , 7 bytes
Pruébalo en línea!
Cómo funciona
fuente
MATL , 8 bytes
Pruébalo en línea!
fuente
Mathematica, 40 bytes
Función pura que toma una lista de (cualquier cosa) como entrada y devuelve una lista.
FoldList[Plus
comienza con un número (en este caso,#&@@#
el primer elemento de la entrada) y agrega repetidamente elementos de la lista autoexplicativaSort@Differences@#
. Esto imita el comportamiento del incorporadoAccumulate
, pero el primer número necesitaría anteponerse a la lista de diferencias a mano, lo que aumenta el recuento de bytes (hasta donde puedo decir).fuente
05AB1E , 9 bytes
-4 gracias a Emigna
Pruébalo en línea!
fuente
¬=s¥{vy+=
Python 2, 92 bytes
fuente
Haskell, 59 bytes
Descompostura:
fuente
scanl(+)a$sort...
JavaScript (ES6), 68 bytes
En JavaScript resulta ser más golfista calcular los deltas inversos de una matriz . Estos se ordenan en orden descendente y se restan acumulativamente del primer elemento.
fuente
Python 2 ,
90 bytes84 bytes
Guardado 6 bytes al usar lambda. Gracias a los ovs!
Pruébalo en línea!
Rompiendo el código,
¡Feliz codificación!
fuente
lambda x:[sum(sorted(map(int.__sub__,x[1:],x[:-1]))[:i])+x[0]for i in range(len(x))]
JavaScript (ES6), 93 bytes
fuente
Python 2 , 97 bytes
Pruébalo en línea!
fuente
[p[i+1]-p[i]for i in range(len(p)-1)]
Pyth, 11 bytes
Esto solo hace lo obvio descrito en la declaración.
Pruébalo en línea
Sugerencias para más golf de bienvenida.
fuente
Julia 0.5 , 30 bytes
Pruébalo en línea!
fuente
PHP, 89 bytes
Corre así:
Explicación
fuente
Python 2 con numpy,
6756 bytesDeje que numpy calcule los deltas, ordénelos, anteponga el primer elemento y deje que numpy calcule las sumas acumulativas. ¿Bastante barato?
fuente
from numpy import*
yn.cumsum
acumsum
yn.diff
adiff
Perl 6 , 31 bytes
Intentalo
Expandido:
fuente
Lote, 197 bytes
sort
no se ordena numéricamente, por lo que sesgo todas las diferencias por 5000.fuente
bash + sort, 102 bytes
sh + sort + expr, 106 bytes
fuente
Clojure, 46 bytes
Un día voy a hacer el lenguaje Cljr que tiene nombres de funciones más cortos que Clojure.
fuente