Widzę wasze BOŻE NARODZENIA i przynoszę wam BADMIS
Wyzwanie
Biorąc pod uwagę zestaw liczb z operatorami między nimi: „5 + 4 * 9/3 - 8”, zwracaj wszystkie możliwe wyniki wyrażenia dla każdej permutacji rzędu podstawowych operacji: [/, *, +, -].
Zasady
- Standardowe luki zabronione
- I / O
- Dane wejściowe należy porządkować za pomocą operacji na poprawki, ale jest to najłatwiejsze (ciąg lub tablica)
- Nie musisz obsługiwać jednoargumentowych operatorów (np. „-3 * 8 / +2”)
- Liczby całkowite można zastąpić liczbami zmiennoprzecinkowymi dla języków, które domyślnie analizują typ (np. 45 ⟶ 45,0)
- Dane wyjściowe muszą zawierać wszystkie możliwe wyniki wyrażenia, bez określonego formatu lub kolejności
- Wszystkie dane wejściowe są prawidłowe (np. Nie trzeba zajmować się „7/3 + *”). Oznacza to również, że nigdy nie będziesz musiał dzielić przez zero.
- Wszyscy operatorzy są lewostronni, więc „20/4/2” = „(20/4) / 2”
- To jest Code Golf, więc najmniej wygranych bajtów
Przypadki testowe (z wyjaśnieniem)
- „2 + 3 * 4” = [14, 20]
- 2 + (3 * 4) ⟶ 2 + (12) ⟶ 14
- (2 + 3) * 4 ⟶ (5) * 4 ⟶ 20
- „18/3 * 2–1” = [11, 2, 6]
- ((18/3) * 2) - 1 ⟶ ((6) * 2) - 1 ⟶ (12) - 1 ⟶ 11
- (18/3) * (2-1) ⟶ (6) * (1) ⟶ 6
- (18 / (3 * 2)) - 1 ⟶ (18 / (6)) - 1 ⟶ (3) - 1 ⟶ 2
- 18 / (3 * (2-1)) ⟶ 18 / (3 * (1)) ⟶ 6
- 18 / ((3 * 2) - 1) ⟶ 18/5 ⟶ 3.6
Przypadki testowe (bez wyjaśnienia)
- „45/8 + 19/45 * 3” = [6.891666666666667, 18.141666666666666, 0,11111111111111113, 0,01234567901234568, 0,01234567901234568, 5,765740740740741]
- „2 + 6 * 7 * 2 + 6/4” = [112 196 23 87,5]
2 - 3 + 4
=>[-5, 3]
2*3-6+2-9/6*8+5/2-9
daje 24 wyraźne wyniki.