Usando nuestros símbolos matemáticos familiares: +, x, paréntesis y cualquier número racional, es fácil crear expresiones que evalúen algún número deseado. Por ejemplo: 1+(2x3)=7, (1+2)+(3x6.5)=22.5y así sucesivamente. Bastante aburrido.
En este desafío, vamos a utilizar un nuevo operador: ±. El uso de ±en una expresión significa que necesita evaluar la expresión reemplazando la ±'s por +o -de todas las formas posibles, y devolver el conjunto de todos los valores posibles. Por ejemplo:
1±2±3 = {-4,0,2,6}porque1±2±3puede ser cualquiera de1+2+3,1+2-3,1-2+3y1-2-3y sus valores son6,0,2,-4respectivamente.(±2)x(2±3) = {-10,-2,2,10}por razones similares
Ahora bien, como resulta que, dado cualquier conjunto de números reales distintos, es posible crear una expresión con +, x, (, ), ±, y los números reales que se evalúa como el conjunto dado.
Tarea
Su tarea es escribir un programa o función en un idioma de su elección, que lleva una secuencia (lista / serie / cualquier formato conveniente) de números enteros y da salida a una expresión (como una cadena) que consiste en +, x, (, ), ±, y los números racionales que evalúa el conjunto de los números dados.
- Tenga en cuenta que el carácter exacto
±no importa; puedes usar cualquier otro personaje de tu elección siempre que sea distinguible de los otros personajes que estás usando. Pero debe mencionar qué personaje está utilizando en su presentación. - Se permite que la entrada consista en aproximaciones decimales (hasta una precisión razonable) de los números racionales utilizados.
- La entrada y salida se pueden tomar de cualquiera de las formas estándar.
- Las lagunas estándar están prohibidas.
- Puede suponer que los enteros dados serán distintos y se proporcionarán en orden creciente.
- La salida puede contener espacios y líneas nuevas.
Criterio ganador
Este es el código de golf , por lo que gana el código más corto en bytes.
Ejemplos
Entrada | Salida posible ------------- + ----------------------------- [1,2,3] | 2 ± 0.5 ± 0.5 [-7, -3,1,21] | (1 ± 2) x (3 ± 4)
Idea tomada de una pregunta en el Torneo de Ciudades, Otoño 2015 .
fuente

Respuestas:
Python 2 , 56 bytes
Pruébalo en línea!
Los
?soportes para±. Ejemplo de uso:La idea es que podemos tomar una expresión
Ey unir un nuevo valorha su conjunto de valores haciendo(.5±.5)*(E+-h)+h.fuente
+-hy no solo-h? Es decir, ¿por qué no hacer que la+una-y retire la-que está actualmente en el programa?-operador en la expresión.Haskell , 52 bytes
Pruébalo en línea!
Usos
?para±. Ejemplo:La función
showssíshows a b=(show a)++b, un truco que aprendí de Lynn.fuente
Haskell , 58 bytes
Usando
#para±, ya que es un byte menos.ftoma una lista de enteros y devuelve una cadena.El resultado es de la forma
n+(.5#.5)x(rest), dondenes el primer elemento de la lista yrestes la representación de todos los demásnrestados de cada uno.Pruébalo en línea!
fuente
Jalea , 29 bytes
Imprime v + (0.5¤0.5) × (i 1 + (0.5¤0.5) × ((i 2 + (0.5¤0.5) × (... (i n ) ...))) donde v es el primer número en la matriz de entrada y i n es el n º diferencia incrementales entre elementos de la matriz de entrada.
Pruébalo en línea!
¿Cómo?
fuente
05AB1E , 25 bytes
Pruébalo en línea!
Explicación
Desafortunadamente, construir la expresión desde la derecha termina en que el mismo byte cuenta
0¸«¥¤s¨RvX;Dy"ÿ+(ÿ±ÿ)*(ÿ). Los 8 bytes utilizados para la configuración son el gran desperdicio aquí.fuente
Haskell, 54 bytes
el signo + - es
'?'. ejemplo:fuente
JavaScript (ES6),
5651 bytesBasado en la fórmula de @ JonathanAllan.
@representa±.fuente