Используя наши знакомые математические символы: +, x, круглые скобки и любое рациональное число, легко создавать выражения, которые оценивают до некоторого желаемого числа. Например: 1+(2x3)=7
, (1+2)+(3x6.5)=22.5
и так далее. Достаточно скучно.
В этой проблеме, мы будем использовать новый оператор: ±
. Использование ±
выражения в выражении означает, что вам нужно вычислить выражение, заменив символы ±
's' +
или -
всеми возможными способами, и вернуть набор всех возможных значений. Например:
1±2±3 = {-4,0,2,6}
потому что1±2±3
может быть любой из1+2+3
,1+2-3
,1-2+3
и1-2-3
и их значения6,0,2,-4
соответственно.(±2)x(2±3) = {-10,-2,2,10}
по тем же причинам.
Теперь, как выясняется, для любого множества различных действительных чисел, то можно создать выражение с +
, x
, (
, )
, ±
, и действительные числа , которое вычисляется в данном наборе.
задача
Ваша задача состоит в том, чтобы написать программу или функцию на языке по вашему выбору, который принимает последовательность (список / массив / любой удобный формат) целых чисел и выводит выражение (в виде строки) , состоящей из +
, x
, (
, )
, ±
, и рациональных чисел который оценивает набор заданных чисел.
- Обратите внимание, что точный символ
±
не имеет значения; Вы можете использовать любой другой символ по вашему выбору, если он отличается от других символов, которые вы используете. Но вы должны указать, какой персонаж вы используете в своем представлении. - Входные данные могут состоять из десятичных аппроксимаций (с достаточной точностью) используемых рациональных чисел.
- Ввод и вывод могут быть приняты любым из стандартных способов.
- Стандартные лазейки запрещены.
- Вы можете предположить, что данные целые числа будут различаться и предоставляться в порядке возрастания.
- Вывод может содержать пробелы и переводы строк.
Критерий победы
Это код-гольф , поэтому выигрывает самый короткий код в байтах.
Примеры
Вход | Возможный вывод ------------- + ----------------------------- [1,2,3] | 2 ± 0,5 ± 0,5 [-7, -3,1,21] | (1 ± 2) х (3 ± 4)
Идея взята из вопроса в Турнире городов, осень 2015 .