친숙한 수학적 기호 인 +, 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-31-2+31-2-36,0,2,-4(±2)x(2±3) = {-10,-2,2,10}비슷한 이유로.
이 밝혀 이제 별개의 실제 숫자의 세트가 지정되면 (자), 그와 식을 만들 수있어 +, x, (, ), ±, 및 실제 숫자가 지정된 세트에 평가합니다.
태스크
당신의 작업은의 (목록 / 배열 / 편리한 형식) 시퀀스를 취 사용자가 선택한 언어로 프로그램이나 함수를 작성하는 것입니다 정수 로 구성된 (문자열로) 식을 출력하고 +, x, (, ), ±,와 유리수 주어진 숫자 세트로 평가됩니다.
- 정확한 특성
±은 중요하지 않습니다. 사용중인 다른 문자와 구별되는 한 원하는 다른 문자를 사용할 수 있습니다. 그러나 제출시 어떤 캐릭터를 사용하고 있는지 언급해야합니다. - 입력은 사용 된 유리수의 10 진수 근사값 (합리적인 정확도까지)으로 구성 될 수 있습니다.
- 모든 표준 방식으로 입력 및 출력을 수행 할 수 있습니다.
- 표준 허점은 금지되어 있습니다.
- 주어진 정수가 고유하고 증가하는 순서로 제공된다고 가정 할 수 있습니다.
- 출력에는 공백과 줄 바꿈이 포함될 수 있습니다.
승리 기준
이것은 code-golf 이므로 바이트 단위의 가장 짧은 코드가 이깁니다.
예
입력 | 가능한 출력 ------------- + ----------------------------- [1,2,3] | 2 ± 0.5 ± 0.5 [-7, -3,1,21] | (1 ± 2) x (3 ± 4)
Tournament of Towns, 2015 가을의 질문에서 얻은 아이디어 .