Usando nossos familiares símbolos matemáticos: +, x, parênteses e qualquer número racional, é fácil criar expressões que sejam avaliadas para um número desejado. Por exemplo: 1+(2x3)=7
, (1+2)+(3x6.5)=22.5
e assim por diante. Chato o suficiente.
Neste desafio, usaremos um novo operador: ±
. O uso de ±
em uma expressão significa que você precisa avaliar a expressão substituindo os ±
's por +
ou -
de todas as maneiras possíveis e retornando o conjunto de todos os valores possíveis. Por exemplo:
1±2±3 = {-4,0,2,6}
porque1±2±3
pode ser qualquer um1+2+3
,1+2-3
,1-2+3
e1-2-3
e os seus valores são6,0,2,-4
respectivamente.(±2)x(2±3) = {-10,-2,2,10}
por razões semelhantes.
Agora, como se vê, dado qualquer conjunto de números reais distintos, é possível criar uma expressão com +
, x
, (
, )
, ±
, e números reais que avalia o conjunto dado.
Tarefa
Sua tarefa é escrever um programa ou função em um idioma de sua escolha, que leva uma seqüência (lista / array / qualquer formato conveniente) de números inteiros e produz uma expressão (como uma string), constituído por +
, x
, (
, )
, ±
, e números racionais que avalia o conjunto dos números fornecidos.
- Observe que o caractere exato
±
não importa; você pode usar qualquer outro caractere de sua escolha, desde que seja distinguível dos outros caracteres que estiver usando. Mas você deve mencionar qual personagem está usando em sua submissão. - É permitido que a entrada consista em aproximações decimais (até precisão razoável) dos números racionais utilizados.
- A entrada e a saída podem ser obtidas de qualquer uma das maneiras padrão.
- As brechas padrão são proibidas.
- Você pode assumir que os números inteiros fornecidos serão distintos e fornecidos em ordem crescente.
- A saída pode conter espaços e novas linhas.
Critério vencedor
Isso é código-golfe , então o código mais curto em bytes vence.
Exemplos
Entrada | Saída possível ------------- + ----------------------------- [1,2,3] 2 ± 0,5 ± 0,5 [-7, -3,1,21] | (1 ± 2) x (3 ± 4)
Ideia tirada de uma pergunta no Torneio das Cidades, outono de 2015 .