En este código de golf, debe obtener el número más cercano de otro en una lista.
La salida puede ser el número más cercano a la entrada.
Ejemplo:
value: (Input) 5 --- [1,2,3] --- 3
Y, el programa puede funcionar con números negativos.
Ejemplo:
value: (Input) 0 --- [-1,3,5] --- -1
value: (Input) 2 --- [1, 5, 3] --- 1 (Because it gives priority to lower numbers)
REGLAS:
Como se mencionó anteriormente, tiene que trabajar con números negativos.
Si hay dos respuestas (Ejemplo: 0 - [5, -5]), el programa da prioridad al número más bajo. (-5)
Este es el código de golf, por lo que gana el código más corto.
code-golf
math
number
array-manipulation
AlexINF
fuente
fuente
Respuestas:
Pyth, 6 bytes
Banco de pruebas
Ingrese el siguiente formulario en STDIN:
Explicación:
fuente
Ruby, 34 bytes
fuente
->n,a{a.min_by{|x|(n-x).abs}}
Mathematica, 12 bytes
FTW incorporado! La explicación de Buettner: "Mathematica tiene una función incorporada
Nearest
para esto, pero devuelve una lista de todos los números empatados. Por lo tanto, necesitamos componerloMin
para romper el empate".fuente
Pyth, 8 bytes
Explicación
Pruébalo en línea!
fuente
JavaScript ES6,
645654 bytesPruébalo en línea
Gracias a @Niel por guardar dos bytes
Fragmento de prueba:
fuente
(i,a)=>a.sort((a,b)=>s(i-a)-s(i-b)||a-b,s=Math.abs)[0]
i=>a=>...
asíf(i)(a)
es como lo llama.input
y una lista / matriz / ... como enterosJalea,
76 bytesPruébalo en línea!
Cómo funciona
fuente
MATL , 10 bytes
Pruébalo en línea!
fuente
Python 2, 56 bytes
Obtiene el número objetivo primero
a=input()
; debe almacenarse en una variable.Luego ordena la entrada con la función
lambda x:abs(a-x)
aplicada (piensemap(lambda x:abs(a-x), input())
)Luego toma el valor mínimo en caso de valores duplicados
fuente
TeaScript, 10 bytes
TeaScript no admite la entrada de matriz, por lo que en la ejecución de la consola:
TeaScript("T#y-la)░", [[1, 2, 3], 1], {}, TEASCRIPT_PROPS)
esto.Explicación
fuente
R, 42 bytes
fuente
Haskell, 38 bytes
Ejemplo de uso:
2 # [1,5,3]
->1
.Para cada elemento en la lista de entrada,
l
haga un par de la diferencia absoluta del elemento con el número de entradae
y el elemento en sí, por ejemploe=2
,l=[1,5,3]
->[(1,1),(3,5),(1,3)]
. Encuentra el mínimo y descarta la diferencia.fuente
zsh,
7573717067 bytesEspera entrada como argumentos de línea de comando.
Tenga en cuenta que los cuatro espacios en el
echo
se supone que es una pestaña, pero Stack Exchange convierte las pestañas en espacios en todas las publicaciones.No es compatible con Bash debido a la
for
sintaxis.¡Gracias a dev-null por 2 bytes!
fuente
Perl 6 , 31 bytes
Uso:
fuente