En utilisant nos symboles mathématiques familiers: +, x, parenthèses et tout nombre rationnel, il est facile de créer des expressions qui évaluent un certain nombre souhaité. Par exemple: 1+(2x3)=7
, (1+2)+(3x6.5)=22.5
et ainsi de suite. Assez ennuyeux.
Dans ce défi, nous allons utiliser un nouvel opérateur: ±
. L'utilisation de ±
dans une expression signifie que vous devez évaluer l'expression en remplaçant le ±
s par +
ou -
de toutes les manières possibles, et renvoyer l'ensemble de toutes les valeurs possibles. Par exemple:
1±2±3 = {-4,0,2,6}
parce que1±2±3
peut être l' un1+2+3
,1+2-3
,1-2+3
et1-2-3
et leurs valeurs sont6,0,2,-4
respectivement.(±2)x(2±3) = {-10,-2,2,10}
pour des raisons similaires.
Maintenant, il se trouve que , étant donné un ensemble de nombres réels distincts, il est possible de créer une expression avec +
, x
, (
, )
, ±
et des nombres réels qui permet d' évaluer à l'ensemble donné.
Tâche
Votre tâche est d'écrire un programme ou une fonction dans une langue de votre choix, qui prend une séquence (liste / série / tout format pratique) des entiers et génère une expression (comme une chaîne) comprenant +
, x
, (
, )
, ±
et nombres rationnels qui évalue à l'ensemble des nombres donnés.
- Notez que le caractère exact
±
n'a pas d'importance; vous pouvez utiliser tout autre personnage de votre choix tant qu'il se distingue des autres personnages que vous utilisez. Mais vous devez mentionner quel personnage vous utilisez dans votre soumission. - L'entrée peut consister en approximations décimales (jusqu'à une précision raisonnable) des nombres rationnels utilisés.
- L'entrée et la sortie peuvent être prises de n'importe quelle manière standard.
- Les failles standard sont interdites.
- Vous pouvez supposer que les entiers donnés seront distincts et fournis dans l'ordre croissant.
- La sortie peut contenir des espaces et des retours à la ligne.
Critère gagnant
C'est le code-golf , donc le code le plus court en octets gagne.
Exemples
Entrée | Sortie possible ------------- + ----------------------------- [1,2,3] | 2 ± 0,5 ± 0,5 [-7, -3,1,21] | (1 ± 2) x (3 ± 4)
Idée tirée d'une question du Tournoi des villes, automne 2015 .