2012-04-06 25 views
0

可能重複:
automatically calculate string mathematical expressing in C#算法/操作方法簡單代數簡化

有人能指出我對一些資源,詳細描述瞭如何簡化簡單的代數方程組,如「 5X +(2×* 6×)2" ,其應導致 「12X^2 + 5X + 2」 我需要處理運算符 「+」, 「 - 」, 「*」, 「/」, 「^」 和括號。到目前爲止,我已經實現了數字方面解析器和評估其從修復到修復後轉換和再評估。

如果有人可以給我我怎麼能做到這一點,將不勝感激一個基本的破敗。

+0

不知道我有問題的權利,看看[波蘭語](http://en.wikipedia.org/wiki/Polish_notation) – sll 2012-04-06 13:05:58

+0

爲什麼你想簡化它? – 2012-04-06 13:56:26

回答

1

如果你已經有內部樹表示方程,你可以遞歸訪問每個節點,以找出是否有兩個子節點的條款相結合的方式。想想你會在每個節點上做什麼,然後考慮邊界條件(節點爲空,節點沒有子節點等)。

這裏是我會怎麼來解決:每個孩子

  1. 訪問反過來
  2. 有一個功能,會發現在孩子相同的變量共同權力和將它們結合起來 一個。考慮多變量方程 b。記住你的輸出格式與工作拷貝格式。您需要將最終結果轉換回文本。

這是一個開始。我認爲