使用我们熟悉的数学符号:+,x,括号和任何有理数,可以轻松创建计算为某个所需数的表达式。例如:1+(2x3)=7
,(1+2)+(3x6.5)=22.5
依此类推。无聊。
在此挑战中,我们将使用一个新的运算符:±
。采用±
在表达方式,你需要通过更换来计算表达式±
用的+
或-
在所有可能的方式,并返回集合中的所有可能的值。例如:
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)x(3±4)
想法来自城镇锦标赛,2015年秋季。