Tôi có ý tưởng này chạy xung quanh trong đầu, để tạo và đánh giá các biểu thức toán học ngẫu nhiên. Vì vậy, tôi quyết định cho nó một shot và xây dựng một thuật toán, trước khi mã hóa nó để kiểm tra nó.
Thí dụ:
Dưới đây là một số biểu thức ví dụ tôi muốn tạo ngẫu nhiên:
4 + 2 [easy]
3 * 6 - 7 + 2 [medium]
6 * 2 + (5 - 3) * 3 - 8 [hard]
(3 + 4) + 7 * 2 - 1 - 9 [hard]
5 - 2 + 4 * (8 - (5 + 1)) + 9 [harder]
(8 - 1 + 3) * 6 - ((3 + 7) * 2) [harder]
Những người dễ dàng và trung bình là khá đơn giản. int
S ngẫu nhiên cách nhau bởi các toán tử ngẫu nhiên, không có gì điên rồ ở đây. Nhưng tôi đang gặp một số rắc rối bắt đầu với cái gì đó có thể tạo ra một trong những khó khăn và khó khăn hơn ví dụ. Tôi thậm chí không chắc chắn một thuật toán duy nhất có thể cho tôi hai thuật toán cuối cùng.
Những gì tôi đang xem xét:
Tôi không thể nói rằng tôi đã thử những ý tưởng đó, vì tôi thực sự không muốn lãng phí nhiều thời gian để đi theo hướng không có cơ hội làm việc ngay từ đầu. Nhưng tôi vẫn nghĩ ra một vài giải pháp:
- Dùng cây
- Sử dụng biểu thức chính quy
- Sử dụng một vòng lặp "for-type" điên rồ (chắc chắn là tồi tệ nhất)
Thứ tôi đang tìm kiếm:
Tôi muốn biết con đường nào bạn tin là tốt nhất để đi, giữa các giải pháp tôi đã xem xét và ý tưởng của riêng bạn.
Nếu bạn thấy một cách tốt để bắt đầu, tôi sẽ đánh giá cao một người dẫn đúng hướng, ví dụ như với sự khởi đầu của thuật toán hoặc cấu trúc chung của nó.
Cũng lưu ý rằng tôi sẽ phải đánh giá các biểu thức đó. Điều này có thể được thực hiện sau khi biểu thức được tạo hoặc trong quá trình tạo. Nếu bạn cân nhắc điều đó trong câu trả lời của mình, điều đó thật tuyệt.
Tôi không tìm kiếm bất cứ điều gì liên quan đến ngôn ngữ, nhưng đối với hồ sơ, tôi nghĩ đến việc triển khai nó trong Objective-C, vì đó là ngôn ngữ tôi làm việc gần đây nhất.
Những ví dụ đó không bao gồm :
toán tử, vì tôi chỉ muốn thao tác int
s và toán tử này thêm nhiều xác minh. Nếu câu trả lời của bạn đưa ra giải pháp xử lý vấn đề này, điều đó thật tuyệt.
Nếu câu hỏi của tôi cần làm rõ, xin vui lòng hỏi trong các ý kiến. Cảm ơn bạn đã giúp đỡ.