爲了好玩,我正在玩一個解決24 game的程序,我試圖找到一種避免在檢查多個解決方案時顯示等效表達式的方法。檢測等效表達式的算法
例如,給定號碼6, 6, 6, 6
,該算法可以(迭代地或遞歸地)生成若干等效表達式。
例如:((6 + 6) + 6) + 6
,(6 + 6) + (6 + 6)
和其他,因爲它們都意味着「將四個六個加在一起」。
顯然,處理所有四個算術操作數時,事情變得更有趣。
例如,表達式A * B + C * D
和C * D + B * A
也是等同的。
另一情況下,這可能是更難以檢測是A - B - C - D
VS A - (C + B + D)
思想,我迄今爲止:
- 使用括號僅在需要時(通過跟蹤優先級和結合)。
- 訂購操作數以便於比較。
你的意思是你的算法可能與中綴,後綴或波蘭符號同時工作? –
不,我的意思是弄清楚兩個算術表達式是否相同,我不在乎它與它的工作原理 –