introduction
Ma calculatrice se comporte bizarrement. Parfois, lorsque je tape un, 8
il affiche un 2
. Et parfois, lorsque je tape un, 6
il affiche un +
. Certains boutons sont mélangés!
Quelqu'un pourrait-il m'aider à déterminer lequel?
Défi:
Entrée: Liste des équations incorrectes , avec des résultats corrects .
Sortie: Les deux boutons qui sont échangés.
Par exemple:
Une entrée peut être:
123 = 3
8423 = 252
4+4 = 8
4*7-10 = 417
9/3 = 3
42-9 = -36
Pour lesquels les résultats attendus sont: 2
et *
.
Pourquoi? Parce que TOUTES les équations seraient correctes si nous échangeons les 2 et les *:
1*3 = 3
84*3 = 252
4+4 = 8
427-10 = 417
9/3 = 3
4*-9 = -36
Règles du défi:
- L'entrée peut être dans n'importe quel format raisonnable. Peut être une chaîne unique avec un espace délimité; une liste de chaînes ou un tableau; une liste avec des équations et une autre liste avec les résultats corrects. Ton appel. Veuillez indiquer le format d'entrée que vous avez utilisé!
REMARQUE: cela signifie également que vous êtes autorisé à saisir le scénario de test en-5--15
tant que-5- -15
ou-5 - -15
. Cependant, un nombre résultant--
doit être entré sans espaces ou avec un espace entre chaque chiffre. Ainsi, le cas de test9119
peut être entré comme9119
ou9 1 1 9
(la raison91 19
n'est pas autorisée parce que vous pouvez ensuite être guidé par l'espace de recherche- -
). Les espaces sont donc (quelque peu) facultatifs et autorisés. - Le format de sortie peut également être dans n'importe quel format raisonnable. Peut être deux caractères; une seule chaîne de deux caractères; une liste de chaînes contenant les deux caractères. Ton appel. Encore une fois, veuillez indiquer le format de sortie que vous avez utilisé!
- Vous êtes autorisé à utiliser 14 sorties distinctes qui correspondent à
0123456789+-*/
. Donc, vous êtes même autorisé à produire deux entiers distincts si vous le souhaitez (encore une fois, veuillez spécifier le mappage que vous avez utilisé, le cas échéant). - Vous n'avez qu'à prendre en charge les entiers. Il n'y aura donc pas de cas de test comme
1/8=0.125
ou1/8=0
. - Opérandes arithmétiques que vous devrez prendre en charge: addition (
+
); soustraction (-
); multiplication (*
ou×
ou·
); division (/
ou÷
). (REMARQUE: les caractères entre parenthèses ne sont ajoutés qu'à titre de clarification.) - Vous devrez prendre en charge les nombres négatifs. Cela signifie
-
peut être interprété dans l'équation à la fois comme un opérande mathématique ou un indicateur négatif. - Vous pouvez supposer que les équations incorrectes données et les équations supposées correctes sont toujours valides (il n'y aura donc pas de choses comme
4-/2
ou9+-+8
par exemple). - Les équations d'entrée incorrectes peuvent contenir une division par 0, mais les équations corrigées et attendues ne contiendront jamais de division par 0.
- Les équations d'entrée incorrectes peuvent déjà être correctes même si vous permutez les boutons voulus.
- Une équation d'entrée donnée peut être sans importance pour les boutons à échanger (comme les équations
4+4=8
et9/3=3
, avec les boutons échangés2
et*
). - Vous pouvez supposer qu'il n'y aura toujours qu'un seul échange possible qui peut être effectué avec les cas de test donnés.
- Les deux boutons à permuter seront toujours présents dans au moins une des équations incorrectes.
Règles générales:
- C'est le code-golf , donc la réponse la plus courte en octets l'emporte.
Ne laissez pas les langues de golf de code vous décourager de publier des réponses avec des langues autres que le golf de code. Essayez de trouver une réponse aussi courte que possible pour «n'importe quel» langage de programmation. - Des règles standard s'appliquent à votre réponse, vous êtes donc autorisé à utiliser STDIN / STDOUT, fonctions / méthode avec les paramètres appropriés et des programmes complets de type retour. Ton appel.
- Les failles par défaut sont interdites.
- Si possible, veuillez ajouter un lien avec un test pour votre code.
- Veuillez également ajouter une explication si nécessaire.
Cas de test:
Input:
123 = 3
8423 = 252
4+4 = 8
4*7-10 = 417
9/3 = 3
42-9 = -36
Output: 2 *
Input:
4/2 = 6
3/0 = 3
0/8+2 = 4
95-5 = 90
4+2 = 2
Output: + /
Input:
7+4 = 11
5-15 = 46
212-23 = -2121
Output: 1 -
Input:
4+8/2-9*1 = -5
99/3-13 = 20
1+2+3+4 = 10
4-3-2-1 = -6
Output: 2 4
Input:
18/18 = 1
98-8 = 90
55*88 = 4840
-5--15 = 10
Ouput: 5 8
Input:
9119 = 18
5-3 = 513
8*-9 = 152
13116/3 = -1
Output: 1 -
--
. Par exemple 1991 = 2, -/3 = 3
. (De nombreuses langues confondent cela avec l'opérateur de décrémentation.)
91 19
si la solution est 9--9
et pas d'espace 9119
si la solution est 9229
nécessite des connaissances sur la solution lors de la création des cas de test. Si cela était autorisé, je pourrais simplement ajouter un espace uniquement avant les caractères échangés et la solution pourrait être immédiatement dérivée du scénario de test.
*
et /
avant +
et binaire -
?