Mit unseren bekannten mathematischen Symbolen: +, x, Klammern und einer beliebigen rationalen Zahl können Sie leicht Ausdrücke erstellen, die eine gewünschte Zahl ergeben. Zum Beispiel: 1+(2x3)=7
, (1+2)+(3x6.5)=22.5
und so weiter. Langweilig genug.
In dieser Herausforderung werden wir einen neuen Betreiber benutzen ±
. Die Verwendung von ±
in einem Ausdruck bedeutet, dass Sie den Ausdruck auswerten müssen, indem Sie die ±
durch +
oder -
auf alle möglichen Arten ersetzen und die Menge aller möglichen Werte zurückgeben. Beispielsweise:
1±2±3 = {-4,0,2,6}
da1±2±3
kann jeder sein1+2+3
,1+2-3
,1-2+3
und1-2-3
und ihre Werte6,0,2,-4
sind.(±2)x(2±3) = {-10,-2,2,10}
aus ähnlichen Gründen.
Nun, wie sich herausstellt, da jeder Satz von verschiedenen reellen Zahlen, ist es möglich , einen Ausdruck mit schaffen +
, x
, (
, )
, ±
, und reellen Zahlen , dass auswertet zu dem vorgegebenen Satz.
Aufgabe
Ihre Aufgabe ist es, ein Programm oder eine Funktion in der Sprache Ihrer Wahl zu schreiben, die eine Sequenz dauert (Liste / array / jedes geeignetes Format) von ganzen Zahlen und gibt einen Ausdruck (als String) aus +
, x
, (
, )
, ±
, und rationaler Zahlen das ergibt die Menge der gegebenen Zahlen.
- Beachten Sie, dass das genaue Zeichen
±
keine Rolle spielt. Sie können jedes andere Zeichen Ihrer Wahl verwenden, sofern es von den anderen Zeichen, die Sie verwenden, unterscheidbar ist. Sie müssen jedoch angeben, welchen Charakter Sie in Ihrer Einreichung verwenden. - Die Eingabe darf aus Dezimalnäherungen (bis zu einer angemessenen Genauigkeit) der verwendeten rationalen Zahlen bestehen.
- Die Ein- und Ausgabe kann auf eine der üblichen Arten erfolgen.
- Standardlücken sind verboten.
- Sie können davon ausgehen, dass die angegebenen Ganzzahlen unterschiedlich sind und in aufsteigender Reihenfolge angegeben werden.
- Die Ausgabe kann Leerzeichen und Zeilenumbrüche enthalten.
Gewinnkriterium
Das ist Code-Golf , also gewinnt der kürzeste Code in Bytes.
Beispiele
Eingabe | Mögliche Ausgabe ------------- + ----------------------------- [1,2,3] | 2 ± 0,5 ± 0,5 [-7, -3,1,21] | (1 ± 2) x (3 ± 4)
Idee aus einer Frage des Städteturniers, Herbst 2015 .