Tôi thấy BIDMAS của bạn và tăng cho bạn một BADMIS
Thử thách
Cho một tập hợp các số có toán tử giữa chúng: "5 + 4 * 9/3 - 8", trả về tất cả các kết quả có thể có của biểu thức cho mọi hoán vị của thứ tự các thao tác cơ bản: [/, *, +, -].
Quy tắc
- Sơ hở tiêu chuẩn bị cấm
- Tôi / O
- Đầu vào phải được sắp xếp với các thao tác infix, tuy nhiên đó là dễ nhất (chuỗi hoặc mảng)
- Bạn không cần phải hỗ trợ các toán tử đơn nguyên (ví dụ: "-3 * 8 / +2")
- Số nguyên có thể được thay thế bằng số float cho các ngôn ngữ ngầm định kiểu phân tích cú pháp (ví dụ 45 45.0)
- Đầu ra phải là tất cả các kết quả có thể có của biểu thức, không có định dạng hoặc thứ tự được chỉ định
- Tất cả các đầu vào là hợp lệ (ví dụ: không cần phải xử lý "7/3 + *"). Điều này cũng có nghĩa là bạn sẽ không bao giờ cần chia cho số không.
- Các toán tử đều liên kết trái nên "20/4/2" = "(20/4) / 2"
- Đây là Code Golf nên số byte thắng ít nhất
Các trường hợp thử nghiệm (Có giải thích)
- "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
Các trường hợp thử nghiệm (Không cần giải thích)
- "45/8 + 19/45 * 3" = [6.891666666666667, 18.141666666666666, 0.1111111111111111313, 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
, cho 24 kết quả khác biệt.