Neste código de golfe, você precisa obter o número mais próximo de outro em uma lista.
A saída pode ser o número mais próximo da entrada.
Exemplo:
value: (Input) 5 --- [1,2,3] --- 3
E, o programa pode funcionar com números negativos.
Exemplo:
value: (Input) 0 --- [-1,3,5] --- -1
value: (Input) 2 --- [1, 5, 3] --- 1 (Because it gives priority to lower numbers)
REGRAS:
Como mencionado anteriormente, ele tem que trabalhar com números negativos.
Se houver duas respostas (exemplo: 0 - [5, -5]), o programa prioriza o número mais baixo. (-5)
Este é o código de golfe, então o código mais curto vence!
code-golf
math
number
array-manipulation
AlexINF
fonte
fonte
Respostas:
Pitão, 6 bytes
Suíte de teste
Insira o seguinte formulário no STDIN:
Explicação:
fonte
Ruby, 34 bytes
fonte
->n,a{a.min_by{|x|(n-x).abs}}
Mathematica, 12 bytes
Built-ins FTW! A explicação de Buettner: "O Mathematica tem um built-in
Nearest
para isso, mas retorna uma lista de todos os números empatados. Por isso, precisamos compor issoMin
para quebrar o empate".fonte
Pitão, 8 bytes
Explicação
Experimente online!
fonte
JavaScript ES6,
645654 bytesExperimente online
Obrigado a @Niel por salvar dois bytes
Snippet de teste:
fonte
(i,a)=>a.sort((a,b)=>s(i-a)-s(i-b)||a-b,s=Math.abs)[0]
i=>a=>...
entãof(i)(a)
é como você o chama.input
e uma lista / array / ... como inteirosGeléia,
76 bytesExperimente online!
Como funciona
fonte
MATL , 10 bytes
Experimente online!
fonte
Python 2, 56 bytes
Obtém o número de destino primeiro
a=input()
- isso deve ser armazenado em uma variável.Em seguida, classifica a entrada com a função
lambda x:abs(a-x)
aplicada (pensemap(lambda x:abs(a-x), input())
)Em seguida, assume o valor mínimo no caso de quaisquer valores duplicados
fonte
TeaScript, 10 bytes
O TeaScript não suporta entrada de matriz, portanto, na execução do console:
TeaScript("T#y-la)░", [[1, 2, 3], 1], {}, TEASCRIPT_PROPS)
para executar isso.Explicação
fonte
R, 42 bytes
fonte
Haskell, 38 bytes
Exemplo de uso:
2 # [1,5,3]
->1
.Para cada elemento da lista de entrada,
l
faça um par da diferença absoluta do elemento com o número de entradae
e o próprio elemento, por exemploe=2
,l=[1,5,3]
->[(1,1),(3,5),(1,3)]
. Encontre o mínimo e descarte a diferença.fonte
zsh,
7573717067 bytesEspera entrada como argumentos de linha de comando.
Observe que os quatro espaços no
echo
verdade deveriam ser uma guia, mas o Stack Exchange converte as guias em espaços em todas as postagens.Não é compatível com o Bash devido à
for
sintaxe.Graças a dev-null por 2 bytes!
fonte
Perl 6 , 31 bytes
Uso:
fonte