我已經編寫了一個PHP解析器,它根據來自earlier question的反饋將等式的字符串表示形式轉換爲RPN。在對它進行測試時,我發現了兩個不同的方程,它們解析了RPN中的同一個東西。因爲當你解決它們時,它們會在RPN中成爲同樣的東西,你會得到同樣的答案。解析到RPN兩個方程給出了相同的表示法,但有不同的答案
- 3 + 4 * 8 /(1 -5)
- 3 + 4 * 8/1-5
兩個最終成爲348 * 15 -/+解決時給出了一個這答案-5這是正確的第一個,但第二個答案應該是30.
所以我誤解了如何轉換爲RPN?解析器的代碼可以在前面問題的上面鏈接中找到。
是的,你的解析器壞了。爲了幫助你調試:第二個RPN的正確表示是:348 * 1/+ 5-。 – Heinzi 2009-11-27 12:44:22
您是否以正確的方式設置了操作員的優先順序? – erenon 2009-11-27 12:47:32