1. 程式人生 > >波蘭表示法與逆波蘭表示法

波蘭表示法與逆波蘭表示法

身為初學者,能力有限,知識尚少,如有紕漏,還望海涵。

  對於表示式,通常有三種表示方法,前、中、字尾表示法。我們日常使用的數學算式就是中綴表示法。例:1+5*10-10/2

碼文不易,希望支援,謝謝->支援原創

 波蘭表示法

  波蘭表示法(Polish notation,或波蘭記法),是一種邏輯、算術和代數表示方法,其特點是操作符置於運算元的前面,因此也稱做字首表示法。波蘭表示法——維基百科

 舉個例子

一個算式: 1+51010/2
用波蘭法表示就是: +1510/102
是不是有點反人類,有人就要問了,這玩意看著費勁,為啥要這麼寫?
答案就是,雖然這玩意人看著費勁,但是更便於機器使用。

 規則

那麼如何去運算波蘭表示法呢?
通過學習,我的總結是
1. 在前面的符號後運算,後面的符號先運算。
2. 每一步運算都是符號和後面兩個數的運算。
3. 運算之後把原來的算式替換成結果,繼續之後的運算。

又如何把中綴算式轉換成波蘭表示法呢?

  1. 把運算元提出來,按照原順序擺好。
  2. 根據運算步驟,在兩運算元前加符號。如果已經有符號,則後加的在前面。

經過轉換之後,不再需要括號。

 逆波蘭表示法

  逆波蘭表示法(Reverse Polish notation,RPN,或逆波蘭記法),是一種是由波蘭數學家揚·武卡謝維奇1920年引入的數學表示式方式,在逆波蘭記法中,所有操作符置於運算元的後面,因此也被稱為字尾表示法。逆波蘭記法不需要括號來標識操作符的優先順序。

逆波蘭表示法——維基百科

 舉個例子

一個算式: 1+51010/2
用波蘭法表示就是: 1510+102/
是不是有點反人類,有人就要問了,這玩意看著費勁,為啥要這麼寫?
答案就是,雖然這玩意人看著費勁,但是更便於機器使用。

 規則

那麼如何去運算逆波蘭表示法呢?
通過學習,我的總結是
1. 在前面的符號先運算,後面的符號後運算。
2. 每一步運算都是符號和前面兩個數的運算。
3. 運算之後把原來的算式替換成結果,繼續之後的運算。

又如何把中綴算式轉換成波蘭表示法呢?

  1. 把運算元提出來,按照原順序擺好。
  2. 根據運算步驟,在兩運算元後加符號。如果已經有符號,則後加的在後面。

經過轉換之後,不再需要括號。

支援原創

碼文不易,希望支援,謝謝->支援原創

微信支付微信支付

再次感謝,大家對本人的支援。