Реализуйте функцию diff, которая принимает в качестве входных данных три целых числа x, y и z. Должно возвращаться, вычитает ли третье одно из этих чисел из другого.
Test cases:
diff(5, 3, 2) yields True because 5 - 3 = 2
diff(2, 3, 5) yields True because 5 - 3 = 2
diff(2, 5, 3) yields True because 5 - 3 = 2
diff(-2, 3, 5) yields True because 3 - 5 is -2
diff(-5, -3, -2) # -5 - -2 is -3
diff(2, 3, -5) yields False
diff(10, 6, 4) yields True because 10 - 6 = 4
diff(10, 6, 3) yields False
Вам не нужно называть функцию, вы можете реализовать методы ввода по умолчанию, приведенные выше примеры не являются строгим руководством.
Ответы:
Желе ,
53 байтаСпасибо @ Sp3000 за сохранение двух байтов!
Код использует тот же алгоритм, что и отличный ответ @ xnor :
Объяснение:
Это даёт
[]
как ложь, а всё остальное как правдивость.Попробуйте онлайн!
источник
Python 3, 21 байт
Если два числа добавить к другому, сумма всех трех будет вдвое больше, чем другое число, поэтому половина суммы будет элементом списка. Python 3 необходимо , чтобы избежать пол-деления, если число не дано , как
3.0
вместо3
.источник
ES6, 31 байт
Добавьте 5 байтов, если вам нужно назвать функцию
diff
.Редактировать: 2 байта сохранены благодаря @Alex L.
источник
||
с|
(я думаю)|
возвращает логическое значение тогда и только тогда, когда оба значения являются логическими. Итакtrue | false == true
, но3 | 5 == 7
. То же относится&&
и&
. Единственное различие между|
и||
когда дело доходит до логических значений:|
примет первое значение и второе значение и найдет ИЛИ этих двух.||
примет первое значение; если это правда, вернутьtrue
, в противном случае, вернуть второе значение.true | false
оценивается в 1 в JavaScript (что является правдой, но не логическим).APL,
85 байтЭто последовательность монадических функций, которая принимает массив и возвращает логическое значение (0/1 в APL). Он использует тот же алгоритм, что и ответ xnor на Python 3 .
Объяснение:
Попробуйте онлайн
Сохранено 3 байта благодаря Денису!
источник
JavaScript ES6,
383433 байтаОчень простая анонимная функция, заимствованная из ответа Python. Принимает вход
x
в виде массива; возвращаетtrue
илиfalse
. Байт побрился к моларманфолу38-байтовая программа, принимающая каждое число в качестве аргумента:
источник
x=>x.some(a=>a==eval(x.join`+`)/2)
, что экономит 4 байта.x=>x.some(a=>2*a==x[0]+x[1]+x[2])
похоже на работу.Oracle SQL 11.2, 49 байт
Перепишите решение @xnor, слава ему.
источник
J, 6 байт
Попробуйте это с J.js .
Как это работает
источник
DUP , 31 символ / 39 байт
Try it here!
Моя первая запись в DUP! Юникод это твоя устрица.
Это анонимная функция / лямбда. Использование:
объяснение
источник
ø
имеет кодовую точку 248, поэтому он равен одному байту, если кодируется как ISO 8859-1.Ява 7, 81
источник
Perl 6,
2019 байтовУ меня две функции, равные по числу байтов, поэтому я поставлю обе. Цените то, что щекочет ваше воображение.
Использование: присвойте любой из них переменной, из которой вы можете вызвать ее.
РЕДАКТИРОВАТЬ: Спасибо @ b2gills за сокращение байтов
источник
{@_∋@_.sum div 2}
и{@_∋+~(@_.sum/2)}
оба короче∋
?Java 8 (лямбда-функция), 29 байт
Java-решения для гольфа обычно бывают короткими, когда программа не обязательно должна быть полнофункциональной. (* кашель кашель * объявление класса, метод main)
источник
Pyth, 6 байт
Попробуйте онлайн!
Ожидается ввод в виде списка целых чисел. Выводит 0, если число не может быть построено путем вычитания двух других, и> 0, если хотя бы один может.
Объяснение:
Тот же алгоритм, что и в ответе @xnor
источник
05AB1E , не конкурирующий
4 байта , не конкурирующие из-за глупости. Код:
Используя 0 как ложь и> 0 как правду. Использует кодировку CP-1252.
источник
;
пополам верхнюю часть стека. Но угадайте что, я никогда не реализовывал это -_-.Kona 16 символов
Извлекает вектор из стека, суммирует его, делит на 2 и определяет, находится ли он в векторе. Возвращает 1 как правдивый и 0 как ложный.
Вызывается через
источник
JQ, 17 символов
(Еще одно переписывание ответа xnor на Python 3. Ответы должны идти к этому.)
Ввод: массив из 3 целых чисел.
Образец прогона:
Он-лайн тест:
JQ, 18 символов
(17 символов кода + 1 символ опции командной строки.)
Ввод: список из 3 целых чисел.
Образец прогона:
источник
MATL , 5 байтов
Используя отличный подход @ xnor :
Попробуйте онлайн!
Грубый подход, 12 байтов :
Попробуйте онлайн!
источник
𝔼𝕊𝕄𝕚𝕟, 7 символов / 9 байтов
Try it here (Firefox only).
Мех. Я все еще нахожу лучшие пути. Это просто потрясающий алгоритм @ xnor.
источник
CJam, 10
12байт2 байта удалены благодаря @ MartinBüttner.
Это показывает число как истинный результат, а не вывод как ложный результат.
Попробуй здесь
источник
Серьезно, 6 байт
Выводит 0, если ложь, и положительное целое число в противном случае.
источник
Mathematica,
2019 байтовРаботает аналогично большинству других ответов.
источник
MemberQ[2{##},+##]&
? (и вы забыли свой счетчик байтов)Haskell, 20 байтов
Используя решение xnor.
источник
(/)
как не работает с целыми числами, а задача требует целых чисел, я не уверен, что это действительно правильное решение.(\l->sum l/2`elem`l).map fromInteger
и он может быть использован , как это:((\l->sum l/2`elem`l).map fromInteger) ([2,3,5] :: [Integer])
. Я думаю, что меня отбросило то, что xnor упомянул об использовании Python 3, поэтому ввод не должен был быть 3.0 вместо 3. Я думал, что тип ввода не был указан, просто так, как они были написаны ...sum
ниelem
не работали бы, я, вероятно, должен был указать, что это был список, но так как этот ответ буквально соответствует тому, что представил xnor (в Хаскеле), я не думал, что это необходимо. :)Perl, 24 + 4 = 28 байт
Требуются
-paX
флаги для запуска, печатается1
как True и ничего как False:-X
отключает все предупреждения.источник
$_=eval(y/ /+/r)/2~~@F
(использует те же параметры командной строки).tr
:)-X
, указав некоторую версию Perl [5.10 .. 5.18). (Смарт-совпадение было введено в 5.10, а экспериментальные предупреждения были введены в 5.18. Любая версия между этими двумя будет работать~~
без-X
.)Джольф, 6 байт
Попробуй это здесь!
Это потрясающее решение проблемы xnor, но в Джолфе.
источник
Пилоны , 8
Еще одна реализация алгоритма xnor.
Как это работает:
источник
SpecBAS - 36 байт
Использует формулу xnors
выводит 1, если истина, и 0, если ложь
источник
05AB1E ,
65 байт-1 байт, создав порт алгоритма Python 3 @xnor .
Попробуйте онлайн или проверьте все контрольные примеры .
Объяснение:
Я уверен, что
м_O
может быть сокращен, но я не уверен, какие команды я должен использовать для этого ..источник
R , 23 байта
Попробуйте онлайн!
Бесстыдный порт ответа Хнора .
источник