Deltas inversos de una matriz
Una continuación de los deltas inversos de una matriz
Su tarea es tomar una matriz de enteros de 32 bits con signo, recompilarlo con sus deltas invertidos.
Ejemplo
La lista,
18 19 17 20 16
tiene los deltas:
1 -2 3 -4
que, cuando se invierte, produce:
-4 3 -2 1
luego, cuando se vuelve a compilar, usando rendimientos:
18 14 17 15 16
cuál debería ser su valor de retorno.
La recompilación consiste en tomar el C
, que es el primer valor de la matriz. En este caso, 18
y aplicando los deltas en orden. Entonces 18 + -4
da 14
, 14 + 3
da 17
, y así sucesivamente.
De entrada y salida
Se le dará una lista / matriz / tabla / tupla / pila / 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 inversión delta anterior.
Recibirá N entradas 0 < N < 10
donde cada número cae dentro del rango-1000 < X < 1000
Casos de prueba
1 2 3 4 5 -> 1 2 3 4 5
18 19 17 20 16 -> 18 14 17 15 16
5 9 1 3 8 7 8 -> 5 6 5 10 12 4 8
6 5 4 1 2 3 -> 6 7 8 5 4 3
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!
Y el ganador es...
Dennis! Quien primero tomó el primer lugar, luego se golpeó con una solución más corta, ¡dándose el primer y el segundo lugar!
Mención honorífica a ais523 con su Jelly, que si no fuera por Dennis entrando justo antes que ellos, habría ocupado el segundo lugar.
fuente
Respuestas:
Jalea , 5 bytes
Este utiliza el algoritmo de respuesta de Julia Glen O .
Pruébalo en línea!
Cómo funciona
fuente
Jalea , 6 bytes
Pruébalo en línea!
Cómo funciona
fuente
Ṛ
donde yo tengoU
). No sé si eso los hace lo suficientemente diferentes como para no considerar duplicados.U
vectoriza mientrasṚ
que no, pero su comportamiento para las matrices planas es idéntico.Ḣ
como 0x1e22 yṚ
como 0x1e5a, cada uno de los cuales requiere 3 bytes.Julia, 24 bytes
Esta es la forma "inteligente" de resolver el problema. El reverso negativo de la matriz tiene los "deltas" invertidos, y luego solo necesita corregir el hecho de que comienza / termina en los lugares equivocados.
fuente
Muñeco de nieve 1.0.2, 72 bytes
Pruébalo en línea!
Esta es una subrutina que toma entradas y salidas del permavar actual.
fuente
JavaScript (ES6),
4537 bytesPuerto de la respuesta de Mathematica de @ JHM. (Estoy seguro de que podría haberlo derivado yo mismo, pero no a esta hora de la noche). Editar: Guardado 8 bytes gracias a @ edc65.
fuente
[...
y]
?a
, lo que se usa más adelante en el programaa=>a.reverse(z=a[0]).map(e=>z+a[0]-e)
z=a[0]
, pero olvidé quitar el[...]
y(,i,b)
.Mathematica, 23 bytes
Función sin nombre El resultado es simplemente: inverso ((primer elemento) + (último elemento) - (cada elemento)).
fuente
Python 2,
96745444 bytesLa entrada se da como una matriz rodeada de corchetes. La salida está en el mismo formato.
¡Gracias a @Kade por guardar
2242 bytes usando un método mucho más simple que lo que estaba haciendo antes!¡Gracias a @ Sherlock9 por guardar 10 bytes al eliminar el contador de índice de la comprensión de la lista!
Genial, ahora si sigo jugando golf me saldrá el problema "tachado 44 sigue siendo 44". ; _;
fuente
lambda l:[l[0]+l[-1]-l[i]for i in range(len(l))][::-1]
con 54 bytes? :) (Créditos a Glen O. para el cálculo)l[i]for i in range(len(l))
, puede usarj for j in l
para guardar 14 bytes.05AB1E , 8 bytes
Pruébalo en línea!
Traducción de mi respuesta MATL, segundo enfoque.
fuente
¬s¥Rvy)}
R,
3730 bytesEditar: ahora usando el enfoque en la respuesta de Julia de Glen O
Antiguo:
Lee entradas, calcula deltas, concatena con el primer elemento y calcula la suma acumulativa.
fuente
MATL , 8 bytes
Pruébalo en línea!
Esta es la aplicación directa de la definición. Considere la entrada
[18 19 17 20 16]
como un ejemplo.Enfoque diferente, mismo conteo de bytes:
Pruébalo onllne!
Matriz invertida y negada más la primera y última entrada de la matriz original.
fuente
Japt, 8 bytes
Ejecútalo en línea
fuente
Pyth - 10 bytes
Test Suite .
fuente
아희 (Aheui) , 3 * 21 caracteres + 2 "\ n" = 65 bytes
Asume la entrada en la pila 아. La salida se almacenará en la pila 안.
Si quieres probar este código:
Al final de la primera línea de este código, agregue la
벙
longitud del carácter (n) veces (es decir, si la entrada es 7 enteros, insértelo 7 veces). Para cada solicitud, escriba un número entero:Pruébalo aquí! (copia y pega el código)
Ejemplo
Para
1, 2, 3, 4, 5
:y escriba
1
,2
,3
,4
, y5
(habrá 5 indicaciones).Versión alternativa (65 bytes)
fuente
65 bytes in UTF-8
o algo así?C # 42 bytes
Toma un
int[]
y devuelve unIEnumerable<int>
.(En realidad, esta es solo una versión portada de la versión de JHM ...)
fuente
TSQL, 200 bytes
Variable de tabla utilizada como entrada
Pruébalo
fuente
PHP,
605652 bytes-4 bytes gracias a @ user59178
opera en argumentos de línea de comando, usa guión bajo como separador. Corre con
php -r '<code>' <space separated numbers>
fuente
$n
como variable de control? Probé una versión como esa y era 4 bytes más corta y parecía funcionar.Perl 6 ,
48 3330 bytesIntentalo
Expandido:
También
*-1
es una expresión lambda de tipo WhateverCode, donde*
es el único parámetro posicional.fuente
[\+]
desde el primer ejemplo, ¿es triángulo reducir[\+] 3,-1,1,-5
→(3,2,3,-2)
y[\,] 3,-1,1,-5
→((3,), (3,-1), (3,-1,1), (3,-1,1,-5))
Julia 0.4 , 32 bytes
Pruébalo en línea!
fuente
BASH, 71 bytes
fuente
C ++ 14, 103 bytes
Como lambda sin nombre, lo que requiere su entrada para tener
rbegin
,rend
,back
ypush_back
al igual que los contenedoresvector
,deque
olist
.Usando el enfoque de la respuesta de Julia de Glen O
Sin golf y uso:
fuente
Haskell, 33 bytes
Utiliza la misma lógica que JHM:
Muy legible también.
fuente
(!!0)
forhead
y using(<$>)
formap
: ¡ Pruébelo en línea!Convexo , 10 bytes
Pruébalo en línea!
fuente
Clojure, 101 bytes
Más o menos sigue la descripción:
fuente
Java 7, 96 bytes
Explicación:
Código de prueba:
Pruébalo aquí
Salida:
fuente
APL (Dyalog Unicode) , SBCS de 11 bytes
Función de prefijo tácito anónimo.
Pruébalo en línea!
+\
suma acumulativa de⊃
el primer elemento del argumento,
seguido∘
por⌽
la reversión de2-⍨/
la diferencia por pares de⊢
el argumentofuente