Vấn đề
Tôi đã có một chương trình mới TUYỆT VỜI sẽ thay đổi cách chúng ta suy nghĩ về toán học trong điện toán, tiếp nhận các chuỗi hàm đại số và thực hiện những điều TUYỆT VỜI với chúng! Vấn đề duy nhất, là tôi chỉ có thể phân tích đại số cụ thể, nếu không vũ trụ tự gấp lại, điều đó thật tệ. May mắn thay, tôi chỉ cần một vài thao tác cơ bản trong đầu vào chương trình mới tuyệt vời này, nhưng tôi vẫn cần nó mở rộng!
Quy tắc
Một câu trả lời phải có thể đơn giản hóa các biểu thức sau đây
2+2nên giảm xuống4(5+x)+6nên giảm xuốngx+11(x+2)^2nên giảm xuốngx^2+4*x+4(x-5)*(3+7*x)nên giảm xuống7*x^2-32*x-155*x+9*xnên giảm xuống14*x(2*x^2)*x^3nên giảm xuống2*x^5
Câu trả lời phải có thể HOÀN TOÀN loại bỏ dấu ngoặc đơn, ngụ ý rằng tất cả phân phối phải diễn ra.
Câu trả lời phải có thể xử lý tất cả các toán tử và mã thông báo sau:
+(Hàm bổ sung)-(Hàm trừ)*(Hàm nhân)((Dấu ngoặc trái, được sử dụng để chỉ một nhóm))(Dấu ngoặc đơn bên phải, được sử dụng để chỉ sự kết thúc của nhóm bắt đầu cuối cùng)x(Biến tiêu chuẩn)[0-9]+(số không âm)
Câu trả lời phải có khả năng bình phương tối thiểu, sử dụng ký hiệu expr ^ 2, bao gồm (expr) ^ 2 theo cách đệ quy, vì (expr) tự nó là một biểu thức;)
Một giải pháp phải nằm trong ký hiệu infix tiêu chuẩn, không có gì vô nghĩa RPN!
Không có chức năng thư viện như Mathicala's
Simplifyđể làm điều này cho bạn.Giải pháp phải là một hàm nhận một đối số duy nhất và trả về phiên bản mở rộng
Vì đây là môn đánh gôn, câu trả lời với số lần đánh (khóa) ít nhất sẽ thắng, 1 tuần từ OP.
Ghi chú
Tất nhiên, không có không gian trong thế giới toán học này! Chỉ dấu ngoặc đơn.
Vì vậy, không có bộ phận được yêu cầu để tiết kiệm từ bao thanh toán
Thứ tự tiêu chuẩn của hoạt động áp dụng.
Tôi biết rằng một số những gì tôi đang hỏi là đơn giản hóa (ví dụ 2+2=4), nơi các bộ phận khác thực sự là điều ngược lại, chẳng hạn như mở rộng (x+1)^2được x^2+2x+1. Đây là cố ý. :)
-25 nét cho một giải pháp có thể làm (expr) ^ n thay vì chỉ (expr) ^ 2
-15 nét cho một giải pháp có thể đánh giá phép nhân xen kẽ, chẳng hạn như 4x+5x== 9x, hoặc 4(x+1)=4x+4
-5 nét cho một giải pháp có thể xử lý nhiều biến (Một biến chính xác là một ký tự chữ cái viết thường)
-5 nét cho một giải pháp có thể loại bỏ hàng đầu 0 ( 007chỉ 7[Không phải hôm nay, Bond!] [Bây giờ tôi cảm thấy như mình đang viết Lisp])