В этом коде гольф, вам нужно получить ближайший номер из другого в списке.
Выход может быть ближайшим числом к входу.
Пример:
value: (Input) 5 --- [1,2,3] --- 3
И программа может работать с отрицательными числами.
Пример:
value: (Input) 0 --- [-1,3,5] --- -1
value: (Input) 2 --- [1, 5, 3] --- 1 (Because it gives priority to lower numbers)
ПРАВИЛА:
Как упоминалось ранее, он должен работать с отрицательными числами.
Если есть два ответа (Пример: 0 - [5, -5]), программа отдает приоритет наименьшему числу. (-5)
Это кодовый гольф, поэтому выигрывает самый короткий код!
code-golf
math
number
array-manipulation
AlexINF
источник
источник
Ответы:
Pyth, 6 байт
Тестирование
Введите следующую форму в STDIN:
Объяснение:
источник
Рубин, 34 байта
источник
->n,a{a.min_by{|x|(n-x).abs}}
Mathematica, 12 байт
Встроенные модули FTW! Объяснение Бюттнера: «Mathematica имеет встроенную функцию
Nearest
для этого, но возвращает список всех связанных чисел. Следовательно, нам нужно составить его,Min
чтобы разорвать связь».источник
Pyth, 8 байт
объяснение
Попробуйте онлайн!
источник
JavaScript ES6,
645654 байтаПопробуйте онлайн
Спасибо @Niel за сохранение двух байтов
Тестовый фрагмент:
источник
(i,a)=>a.sort((a,b)=>s(i-a)-s(i-b)||a-b,s=Math.abs)[0]
i=>a=>...
тогдаf(i)(a)
, как вы ее называете.input
и список / массив / ... в виде целых чиселЖеле,
76 байтПопробуйте онлайн!
Как это устроено
источник
MATL , 10 байт
Попробуйте онлайн!
источник
Python 2, 56 байт
Сначала получает целевой номер
a=input()
- он должен быть сохранен в переменной.Затем сортирует ввод с
lambda x:abs(a-x)
примененной функцией (думаюmap(lambda x:abs(a-x), input())
)Затем он принимает минимальное значение в случае дублирования значений
источник
TeaScript, 10 байт
TeaScript не поддерживает ввод массива, поэтому в консоли выполните
TeaScript("T#y-la)░", [[1, 2, 3], 1], {}, TEASCRIPT_PROPS)
команду : runthis.объяснение
источник
R, 42 байта
источник
Haskell, 38 байт
Пример использования:
2 # [1,5,3]
->1
.Для каждого элемента в списке ввода
l
создайте пару абсолютных разностей элемента с номером вводаe
и самим элементом, напримерe=2
,l=[1,5,3]
->[(1,1),(3,5),(1,3)]
. Найдите минимум и отбросьте разницу.источник
zsh,
7573717067 байтОжидается ввод в качестве аргументов командной строки.
Обратите внимание, что четыре пробела в
echo
действительности должны быть вкладками, но Stack Exchange преобразует вкладки в пробелы во всех сообщениях.Не совместим с Bash из-за
for
синтаксиса.Спасибо dev-null за 2 байта!
источник
Perl 6 , 31 байт
Использование:
источник