Écrivez le code le plus court possible qui retournera vrai si les deux valeurs entières données sont égales ou si leur somme ou différence absolue est 5.
Exemples de cas de test:
4 1 => True
10 10 => True
1 3 => False
6 2 => False
1 6 => True
-256 -251 => True
6 1 => True
-5 5 => False
Le plus court que j'ai pu trouver en python2 est de 56 caractères:
x=input();y=input();print all([x-y,x+y-5,abs(x-y)-5])<1
-9, merci @ElPedro. Il prend une entrée au format x, y:
x,y=input();print all([x-y,x+y-5,abs(x-y)-5])<1
code-golf
decision-problem
Vikrant Biswas
la source
la source
Réponses:
Python 2 , 30 octets
Essayez-le en ligne!
Un octet enregistré par Arnauld
Trois octets enregistrés par l'alephalpha
la source
JavaScript (ES6), 28 octets
Prend les entrées en tant que0 ou 1 .
(a)(b)
. RenvoieEssayez-le en ligne!
la source
Dyalog APL , 9 octets
Essayez-le en ligne!
Énoncée:
la source
code machine x86, 39 octets
Assemblée
Essayez-le en ligne!
la source
J ,
1211 octets1 octet économisé grâce à Adám
Essayez-le en ligne!
Explication
Cela équivaut à:
Cela peut être divisé dans la chaîne de fourche suivante:
Ou, visualisé en utilisant
5!:4<'f'
:Annoté:
la source
e.
e.
était=+.5 e.|@-,+
. Peut-être que vous oubliez qu'il5e.
s'agit d'un jeton invalide en J?+
place de+.
R , 40 octets (ou 34)
Essayez-le en ligne!
Pour les utilisateurs non-R:
-1:1*5
s'étend à[-5, 0, 5]
%in%
opérateur prend les éléments de gauche et vérifie (par élément) s'ils existent dans le vecteur de droiteUn port direct de la solution @ ArBo a
3534 octets, alors votez pour cette réponse si vous l'aimez:la source
function(x,y)x%in%c(y--1:1*5,5-y)
function(x,y)(x-y)%in%(-1:1*5)
et la faire descendre à 24 octets en supprimant la notation de fonction àscan()
saisir:diff(scan())%in%(-1:1*5)
Essayez-la en ligne! . Toujours à peu près la même méthode.pryr::f
, ce qui se produit dans les deux cas. S'il peut détecter correctement les arguments est tout à fait aléatoire, mais il semble clouer ces deux fonctions. par exemplepryr::f(x%in%c(y--1:1*5,5-y))
Essayez-le en ligne! . Vous donne respectivement 36 et 29 octets.Python 2 ,
2931 octetsEssayez-le en ligne!
Comme je n'ai pas réussi à lire attentivement la tâche la première fois, pour y remédier, j'ai dû trouver une approche complètement différente, qui n'est malheureusement pas aussi concise.
la source
8086 code machine,
2220 octetsUngolfed:
Entrez les nombres dans AX et BX et retourne le drapeau zéro (ZF = 1) si le résultat est vrai. Si vous le souhaitez, vous pouvez également déterminer quelle condition était vraie avec les éléments suivants:
Si la différence entre les nombres est 0, nous savons qu'ils sont égaux. Sinon, si le résultat est négatif, niez-le d'abord, puis vérifiez 5. Si ce n'est toujours pas vrai, ajoutez et vérifiez 5.
Exemple de programme de test PC DOS. Téléchargez-le ici ( ESD.COM ).
Sortie du programme de test:
la source
Gelée , 7 octets
Essayez-le en ligne!
Comment ça marche
la source
Python 2, 38 octets
-2 octets grâce à @DjMcMayhem
Essayez-le en ligne!
la source
5
s et leor
sJava (JDK) , 30 octets
Essayez-le en ligne!
la source
Wolfram Language (Mathematica) , 22 octets
Prend les entrées en tant que
[a][b]
.Essayez-le en ligne!
la source
PowerShell ,
484440 octetsEssayez-le en ligne! ou vérifier tous les cas de test
Prend entrée
$a
et$b
. Vérifie si$b
est-in
le groupe ($a-5
,5-$a
5+$a
ou$a
), qui vérifie toutes les combinaisons possibles de$a
,$b
et5
.-4 octets grâce à mazzy.
-4 octets grâce à KGlasier.
la source
($a-$b)
est-$x
:)5
et que$b
vous pouvez couper quelques octets (c.-à-d.param($a,$b)$b-in($a-5),(5-$a),($a+5),$a
) Essayez-le ici$a+5
pour5+$a
obtenir un cast approprié lors de la prise de ligne de commande, mais sinon génial. Merci!Pascal (FPC) ,
2670 octetsModifier: + variables d'entrée.
Essayez-le en ligne!
Essayez-le en ligne!
J'espère que ma réponse est conforme à toutes les règles du code-golf. C'était amusant de toute façon.
la source
C # (.NET Core) ,
43,48,47, 33 octetsEDIT: J'ai essayé d'utiliser% et j'ai apparemment oublié comment%. Merci à Arnauld de l'avoir signalé!
EDIT2: AdmBorkBork avec un golf de -1 octet réorganisant les parenthèses pour s'asseoir à côté du retour, donc aucun espace supplémentaire n'est nécessaire!
EDIT3: Merci à dana pour le golf de -14 octets pour le raccourci de retour sur une ligne et le curry de la fonction (Ty Embodiment of Ignorance pour la liaison avec TIO).
C # (.NET Core) , 33 octets
Essayez-le en ligne!
la source
C (gcc) , 33 octets
Essayez-le en ligne!
J'ai essayé une approche que je n'ai vu personne d'autre essayer d'utiliser. L'expression de retour est équivalente à
a+b==5||((-6<a-b||a-b<6)&&(a-b)%5==0)
.la source
Scala, 43 octets
Essayez-le en ligne!
la source
||
à|
? Je sais que c'est possible en Java, C #, Python ou JavaScript, mais je ne suis pas sûr de Scala.Perl 6 , 24 octets
-1 octet grâce à Grimy
Essayez-le en ligne!
Cela utilise Any Junction mais techniquement, cela
^
pourrait aussi fonctionner.Explication:
la source
{$^a-$^b==5|0|-5|5-2*$b}
C (gcc) ,
4134 octetsEssayez-le en ligne!
la source
f
revient-ila
? Juste un comportement indéfini?05AB1E ,
1312 octetsEssayez-le en ligne!
Prend l'entrée comme une liste d'entiers, économisant un octet. Merci @ Wisław!
Réponse alternative de 12 octets
Essayez-le en ligne!
Celui-ci prend l'entrée sur des lignes distinctes.
la source
|
?OI`αª5¢IË~Ā
. L'entrée est une liste d'entiers.OIÆÄ)5QIËM
est de 10.05AB1E , 10 octets
Essayez-le en ligne!
J'ai essayé de le faire en utilisant des opérations de pile uniquement, mais c'était plus long.
la source
0
telle que pour[5, -5]
OIÆÄ‚5QIËM
) est correcte[5,-5]
.OsÆÄ‚5åsË~
. Il semble presque identique au vôtre. Essayez-le en ligne!Rubis , 34 octets
Eval en ligne - Merci @ ASCII uniquement
la source
.nil?
vérifier pour donner la sortie dans le format requis.->(a,b){[a+5,a-5,5-a,a].index(b).nil?}
, c'est plus long que l'actuel.Tcl , 53 octets
Essayez-le en ligne!
la source
Japt ,
1413 octetsEssayez-le en ligne!
la source
Lot, 81 octets
Prend l'entrée comme arguments de ligne de commande et renvoie 1 en cas de succès, rien en cas d'échec. Batch ne peut pas facilement faire de disjonctions, donc j'utilise les lois de De Morgan pour le transformer en conjonction.
la source
Charbon de bois , 18 octets
Essayez-le en ligne! Le lien est vers la version verbeuse du code. Port de la solution Python 2 de @ ArBo.
la source
Japt,
1312 octetsEssayez-le ou lancez tous les cas de test
la source
[-5,5]
(devrait être Falsey)Lisp commun, 48 octets
la source
Brachylog , 8 octets
Prend la saisie sous forme de liste de deux nombres (à utiliser
_
pour les négatifs). Essayez-le en ligne!Explication
Une traduction directe de la spécification:
la source
Retina 0.8.2 , 82 octets
Essayez-le en ligne! Le lien inclut des cas de test. Explication: Les deux premières lignes convertissent les entrées en unaire. La dernière ligne vérifie ensuite les correspondances autorisées:
Pivoté par la dernière colonne, nous obtenons:
la source