Implémentez une fonction diff qui prend en entrée trois entiers x, y et z. Il devrait renvoyer si la soustraction d'un de ces nombres d'un autre donne le troisième.
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
Vous n'avez pas à nommer la fonction, vous pouvez implémenter des méthodes d'entrée par défaut, les exemples ci-dessus ne sont pas des directives strictes.
Réponses:
Gelée ,
53 octetsMerci à @ Sp3000 pour avoir économisé deux octets!
Code, utilise à peu près le même algorithme que la grande réponse de @ xnor :
Explication:
Cela donne
[]
autant de fausseté, et tout ce qui est aussi vrai.Essayez-le en ligne!
la source
Python 3, 21 octets
Si deux nombres s'ajoutent à l'autre, la somme des trois sera le double de cet autre nombre, donc la moitié de la somme sera un élément de la liste. Python 3 est nécessaire pour éviter la division du sol, à moins que les nombres ne soient donnés comme
3.0
plutôt que3
.la source
ES6, 31 octets
Ajoutez 5 octets si vous devez nommer la fonction
diff
.Edit: sauvé 2 octets grâce à @Alex L.
la source
||
par|
(je pense)|
renvoie un booléen si et seulement si les deux valeurs sont booléennes. Alorstrue | false == true
, mais3 | 5 == 7
. La même chose s'applique&&
et&
. La seule différence entre|
et||
quand il s'agit de booléens:|
prendra la première valeur et la deuxième valeur et trouvera le OU de ces deux.||
prendra la première valeur; si c'est vrai, retourneztrue
, sinon, retournez la deuxième valeur.true | false
est évalué à 1 en JavaScript (ce qui est vrai, mais pas booléen).APL,
85 octetsIl s'agit d'un train de fonctions monadiques qui accepte un tableau et renvoie un booléen (0/1 en APL). Il utilise le même algorithme que Python 3 de xnor réponse .
Explication:
Essayez-le en ligne
Enregistré 3 octets grâce à Dennis!
la source
JavaScript ES6,
383433 octetsFonction anonyme très simple, et emprunte à la réponse Python. Prend l'entrée
x
comme un tableau; renvoietrue
oufalse
. Octets rasés à Molarmanful et jrichUn programme de 38 octets, prenant chaque nombre en argument:
la source
x=>x.some(a=>a==eval(x.join`+`)/2)
, ce qui économise 4 octets.x=>x.some(a=>2*a==x[0]+x[1]+x[2])
semble fonctionner.Oracle SQL 11.2, 49 octets
Réécriture de la solution @xnor, bravo à lui.
la source
J, 6 octets
Essayez avec J.js .
Comment ça marche
la source
DUP , 31 caractères / 39 octets
Try it here!
Ma première soumission DUP jamais! Unicode est votre huître.
C'est une fonction anonyme / lambda. Usage:
Explication
la source
ø
a le point de code 248, il s'agit donc d'un octet s'il est codé ISO 8859-1.Java 7, 81
la source
Perl 6,
2019 octetsJ'ai deux fonctions égales en nombre d'octets, donc je vais mettre les deux. Appréciez ce qui chatouille votre fantaisie.
Utilisation: attribuez l'une ou l'autre à une variable à partir de laquelle vous pouvez l'appeler.
EDIT: Merci @ b2gills pour la réduction d'octets
la source
{@_∋@_.sum div 2}
et{@_∋+~(@_.sum/2)}
sont tous deux plus courts∋
-il?Java 8 (fonction lambda), 29 octets
Les solutions de golf en code Java ne sont généralement courtes que lorsque le programme ne doit pas être un programme entièrement fonctionnel. (* toux toux * déclaration de classe, méthode principale)
la source
Pyth, 6 octets
Essayez-le en ligne!
Attend l'entrée comme une liste d'entiers. Affiche 0 si aucun nombre ne peut être construit en soustrayant les deux autres et> 0 si au moins un peut.
Explication:
Même algorithme que la réponse de @xnor
la source
05AB1E , non concurrent
4 octets , non concurrents à cause d'une chose stupide. Code:
Utiliser 0 comme faux et> 0 comme vrai. Utilise l'encodage CP-1252.
la source
;
divise par deux le haut de la pile. Mais devinez quoi, je ne l'ai jamais implémenté -_-.Kona 16 caractères
Prend un vecteur de la pile, les additionne, divise par 2 et détermine s'il est dans le vecteur. Renvoie 1 comme véridique et 0 comme falsey.
Appelé via
la source
jq, 17 caractères
(Encore une autre réécriture de xnor de » Python 3 réponse . Upvotes devrait aller à celui - là.)
Entrée: tableau de 3 entiers.
Exemple d'exécution:
Test en ligne:
jq, 18 caractères
(Code de 17 caractères + option de ligne de commande de 1 caractère.)
Entrée: liste de 3 entiers.
Exemple d'exécution:
la source
MATL , 5 octets
Utiliser la grande approche de @ xnor :
Essayez-le en ligne!
Approche par force brute, 12 octets :
Essayez-le en ligne!
la source
𝔼𝕊𝕄𝕚𝕟, 7 caractères / 9 octets
Try it here (Firefox only).
Meh. Je trouve toujours de meilleures façons. C'est juste l'algorithme génial de @ xnor.
la source
CJam, 10
12octets2 octets supprimés grâce à @ MartinBüttner.
Cela affiche un nombre comme résultat véridique et aucune sortie comme résultat falsifié.
Essayez-le ici
la source
Sérieusement, 6 octets
Affiche 0 si faux et un entier positif sinon.
la source
Mathematica,
2019 octetsFonctionne de manière similaire à la plupart des autres réponses.
la source
MemberQ[2{##},+##]&
? (et vous avez oublié votre nombre d'octets)Haskell, 20 octets
Utilisation de la solution de xnor.
la source
(/)
cela ne fonctionne pas pour les entiers et que le défi demande des entiers, je ne suis pas sûr que ce soit une solution valide.(\l->sum l/2`elem`l).map fromInteger
et il peut être utilisé comme ceci:((\l->sum l/2`elem`l).map fromInteger) ([2,3,5] :: [Integer])
. Je suppose que ce qui m'a découragé était xnor mentionnant l'utilisation de python 3, donc l'entrée n'avait pas besoin d'être 3.0 au lieu de 3. Je pensais que le type d'entrée n'était pas spécifié, juste la façon dont ils étaient écrits ...sum
nielem
ne fonctionnerait, j'aurais probablement dû spécifier que c'était une liste mais comme cette réponse est littéralement ce que xnor a soumis (dans Haskell), je ne pensais pas que c'était nécessaire. :)Perl, 24 + 4 = 28 octets
Requiert des
-paX
drapeaux pour fonctionner, imprime1
en Vrai et rien en Faux:-X
désactive tous les avertissements.la source
$_=eval(y/ /+/r)/2~~@F
(utilise les mêmes options de ligne de commande).tr
:)-X
côté en spécifiant une version Perl [5.10 .. 5.18). (La correspondance intelligente a été introduite en 5.10 et des avertissements expérimentaux ont été introduits en 5.18. Toute version entre ces deux fonctionnera bien avec~~
sans-X
.)Jolf, 6 octets
Essayez-le ici!
C'est la solution géniale de xnor au problème, mais dans Jolf.
la source
Pylônes , 8
Encore une autre implémentation de l'algorithme de xnor.
Comment ça marche:
la source
SpecBAS - 36 octets
Utilise la formule xnors
renvoie 1 si vrai et 0 si faux
la source
05AB1E ,
65 octets-1 octet en créant un port de l' algorithme Python 3 de @xnor .
Essayez-le en ligne ou vérifiez tous les cas de test .
Explication:
Je suis sûr que cela
м_O
peut être raccourci, mais je ne sais pas quelle (s) commande (s) je dois utiliser pour cela ..la source
R , 23 octets
Essayez-le en ligne!
Port sans vergogne de la réponse de xnor .
la source