Una matriz insignificante es una matriz de enteros positivos, donde las diferencias absolutas entre elementos consecutivos son todas menores o iguales a 1 .
Por ejemplo, la siguiente matriz es insignificante:
[1, 2, 3, 4, 3, 4, 5, 5, 5, 4]
Porque las diferencias (absolutas) correspondientes son:
[1, 1, 1, 1, 1, 1, 0, 0, 1]
Todos los cuales son más pequeños o iguales a 1 .
Su tarea es determinar si un conjunto dado de enteros es insignificante.
- Puede suponer que la matriz siempre contiene al menos dos elementos.
- Se aplican las reglas estándar de entrada y salida . Puede tomar entrada (y salida) en cualquier formato razonable.
- Las lagunas predeterminadas están prohibidas.
- Los valores de verdad / falsedad deben ser distintos y consistentes.
- Este es el código de golf , por lo que la respuesta más corta en bytes gana.
Casos de prueba
Entrada -> Salida [1, 2, 3, 4, 3, 4, 5, 5, 5, 4] -> verdadero [1, 2, 3, 4, 5, 6, 7, 8, 9, 8] -> verdadero [3, 3, 3, 3, 3, 3, 3] -> verdadero [3, 4, 4, 4, 3, 3, 3, 4, 4, 4] -> verdadero [1, 2, 3, 4] -> verdadero [5, 4, 3, 2] -> verdadero [1, 3, 5, 7, 9, 7, 5, 3, 1] -> falso [1, 1, 1, 2, 3, 4, 5, 6, 19] -> falso [3, 4, 5, 6, 7, 8, 7, 5] -> falso [1, 2, 4, 10, 18, 10, 100] -> falso [10, 20, 30, 30, 30] -> falso
Usé los valores truey false.
code-golf
number
array-manipulation
decision-problem
Martin Ender
fuente
fuente

Respuestas:
Jalea , 3 bytes
Pruébalo en línea!
¿Cómo?
Simplemente el desafío perfecto para Jelly.
fuente
Pno funcionaría, porque si todas las diferencias fueran1salida1, pero si una de ellas fuera0, ¿saldría0? ¿Y si una diferencia fuera la5otra0, todavía lo haría0?JavaScript (ES7),
3329 bytesGuardado 4 bytes gracias a @JohanKarlsson
¿Cómo?
Cuando se les coacciona
Number, se evalúan las matrices de al menos dos elementosNaN. Al reutilizar la entrada a como la variable que contiene el valor anterior, la primera iteración de some () siempre da como resultado ([v0, v1, ...] - a [0]) ** 2 = NaN , sin importar el valor de a [0] . Por lo tanto, la primera prueba siempre es falsa y las comparaciones reales comienzan en la segunda iteración, tal como deben ser.Casos de prueba
Mostrar fragmento de código
fuente
a=>!a.some(v=>(a-(a=v))**2>1)Python 3 , 40 bytes
Pruébalo en línea!
fuente
Mathematica, 24 bytes
fuente
#==Clip@#&@*Differenceses un byte más corto.Python 2 , 35 bytes
Existe con el código de estado 1 para matrices insignificantes, con el código de estado 0 de lo contrario.
Pruébalo en línea!
fuente
Casco , 4 bytes
Pruébalo en línea!
Explicación:
fuente
Octava , 21 bytes
Función anónima que ingresa un vector numérico y sale
1si es insignificante o0no.Pruébalo en línea!
fuente
Haskell ,
3433 bytesPruébalo en línea! -1 byte gracias a @ user1472751
La solución sin puntos es
uno,dos,solo un byte ( gracias a -1 byte de @Dennis ) más corto que el enfoque recursivo:Pruébalo en línea!
fuente
Pyth , 6 bytes
Verifique todos los casos de prueba.
Pyth , 8 bytes
Pruébalo en línea!
Explicación
fuente
I#lugar deM.Protón , 41 bytes
Pruébalo en línea!
-16 bytes gracias al Sr. Xcoder
-2 bytes
-6 bytes gracias al Sr. Xcoder
fuente
<2 forpuede ser omitible.Japt , 6 bytes
Pruébalo en línea!
Explicación
fuente
C # (.NET Core) ,
514544 + 18 bytes-1 byte gracias a Jeppe Stig Nielsen
El recuento de bytes también incluye:
Pruébalo en línea!
Explicación:
fuente
a=>a.Zip(a.Skip(1),(x,y)=>x-y).All(x=>x*x<4)evita la negación!.Perl 6 , 25 bytes
Pruébalo en línea!
Esto debería ser bastante legible. Lo único menos obvio aquí es que el operador zip
Zdejará de comprimir cuando se agote la lista más corta (eliminamos el primer elemento de la lista a la derecha) y que el subíndice vacío.[], llamado corte Zen, proporciona toda la lista..skipdevuelve la lista sin el primer elemento.fuente
.rotateno se necesita aquí.-2<lugar de-1≤y en<2lugar de≤1guardar cuatro bytes más.2>...>-2para evitar interpretarlas de<manera errónea.R ,
3026 bytesPruébalo en línea!
fuente
function(a)all(diff(a)^2<2)ahorra 3 bytes.all(diff(scan())^2<2)scan, ¡pero aún guarda un byte!05AB1E , 5 bytes
Pruébalo en línea!
Explicación
fuente
[5,2]por ejemplo.Ohm v2 , 4 bytes
Pruébalo en línea!
¿Cómo?
fuente
PowerShell , 62 bytes
Pruébalo en línea!
PowerShell no tiene una
.mapo.somecomando o similar, por lo que aquí estamos comprobar individualmente cada delta.Tomamos entrada
$ay establecemos$ligual al primer elemento. Luego recorremos$ay sacamos cada elemento donde|?{...}la diferencia$_-$les-inel rango1,0,-1. Luego establecemos$ligual al elemento actual. Así que ahora tenemos una colección de elementos donde el delta entre su vecino anterior es 1. Tomamos el.countde eso y verificamos si es-equal al.countdel conjunto como un todo. Si es así, cada delta es 1 o menos, por lo que es una matriz insignificante. Ese resultado booleano se deja en la tubería y la salida es implícita.fuente
$l=($a=$args)[0]$lpara ser la matriz de entrada completa en su sugerencia.$argssí mismo es toda la matriz. Ejemplo$args. Si llamaste a un script o una función con una serie de argumentos separados como espacios, aparecería como elementos separados$args, y para TIO esa es la forma de emular eso. Personalmente lo he usado de esa manera muchas veces antes, pero para cada uno lo suyo :)Python 3 , 45 bytes
Pruébalo en línea! o Prueba la suite de prueba.
Gracias a Jonathan Frech por -2 bytes.
fuente
abs(x-y)<2->-2<x-y<2.Java (OpenJDK 8) , 78 bytes
Pruébalo en línea!
fuente
MAT ,
6 65 bytes-1 byte gracias a Giuseppe
Pruébalo en línea! o Verificar todos los casos de prueba
fuente
d|2<en su lugar, ya que una matriz con un valor cero es falsey en MATL.d|2<Apor algo más cercano a tu respuesta original.anyfix , 9 bytes
Pruébalo en línea!
Esto es principalmente un puerto de la solución 05AB1E, excepto terrible porque anyfix no tiene autovectorización y otras cosas interesantes
fuente
C,
6156 bytes¡Gracias a @scottinet por guardar cinco bytes!
Pruébalo en línea!
C (gcc), 47 bytes
Pruébalo en línea!
fuente
rlugar de devolverlo. :-)Clojure, 35 bytes
¿Qué tan limpio es eso?
fuente
TI-Basic,
67 byteso 5 bytes si los errores cuentan como valor de retorno válido (devuelve
ERR:ARGUMENTsi es insignificante, de lo contrarioERR:DOMAIN)fuente
abs(ΔList(Ans, o de lo contrario cae en más de 1 (como en {5,3,1} o en el caso de prueba {3,4,5,6,7,8,7,5}) no obtener detectadoJavaScript (ES6),
3736 bytesEditar: Guardado 1 byte robando el truco de @ Arnauld.
fuente
a=>u=>!a.some(e=>(e-=(u=e))>1|e<-1)Pyth, 7 bytes
Banco de pruebas
Devuelve verdadero / falso.
Explicación:
fuente
Mathematica, 34 bytes
Explicación
fuente
Java (OpenJDK 8) , 60 bytes
Pruébalo en línea!
fuente
ren el ciclo para calcular(p-n)solo una vez,>>1puede ser/2o eliminarse si usa en|lugar de+:a->{int r=1,p=a[0];for(int i:a)r|=(r=p-(p=i))*r;return r<2;}(60 bytes).Swift 4, 52 bytes
Banco de pruebas:
fuente
APL, 13 bytes
Primera respuesta APL \ o /
Nota: Soy un bot propiedad de Hyper Neutrino. Existo principalmente para pruebas de chat.
Explicación
fuente
∧/2>(|2-/⊢)