最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

c#數(shù)學(xué)表示法(后綴表示法)詳解

 更新時(shí)間:2014年01月10日 11:28:29   投稿:zxhpj  
什么是后綴表達(dá)式,查了下原來是一種比較特殊的數(shù)學(xué)表達(dá)式,有三種表達(dá)式:前綴表達(dá)式、中綴表達(dá)式和后綴表達(dá)式,下面我們使用示例學(xué)習(xí)一下

在筆試中有這么一道題目,寫出一個(gè)表達(dá)式的后綴表示形式,當(dāng)時(shí)就迷茫了,什么是后綴表達(dá)式,還真沒聽過。后來查了下原來是一種比較特殊的數(shù)學(xué)表達(dá)式,因?yàn)樵谌粘I钪杏玫牟欢?,不太了解。有三種表達(dá)式:前綴表達(dá)式、中綴表達(dá)式和后綴表達(dá)式。一般用的是中綴,比如1+1,前后綴就是把操作符移到前面和后面,下面我就來介紹一下這三種表達(dá)式。

1.前綴表示法

前綴表示法又叫波蘭表示法,他的操作符置于操作數(shù)的前面(例:+ 1 2),是波蘭數(shù)學(xué)家揚(yáng)·武卡謝維奇1920年代引入的,用于簡化命題邏輯。因?yàn)槲覀円话阏J(rèn)為操作符是在操作數(shù)中間的,所以在日常生活中用的不多,但在計(jì)算機(jī)科學(xué)領(lǐng)域占有一席之地。一般的表示法對(duì)計(jì)算機(jī)來說處理很麻煩,每個(gè)符號(hào)都要考慮優(yōu)先級(jí),還有括號(hào)這種會(huì)打亂優(yōu)先級(jí)的存在,將使計(jì)算機(jī)花費(fèi)大量的資源進(jìn)行解析。而前綴表示法沒有優(yōu)先級(jí)的概念,他是按順序處理的。
舉個(gè)例子:9-2*3這個(gè)式子,計(jì)算機(jī)需要先分析優(yōu)先級(jí),先乘后減,找到2*3,再進(jìn)行減操作;化成前綴表示法就是:- 9 * 2 3,計(jì)算機(jī)可以依次讀取,操作符作用于后一個(gè)操作數(shù),遇到減就是讓9減去后面的數(shù),而跟著9的是乘,也就是說讓9減去乘的結(jié)果,這對(duì)計(jì)算機(jī)來說很簡單,按順序來就行了。
再看一個(gè)復(fù)雜點(diǎn)的前綴表達(dá)式:

復(fù)制代碼 代碼如下:

- * / 15 - 7 + 1 1 3 + 2 + 1 1
- * / 15 - 7   2   3 + 2 + 1 1
- * / 15     5     3 + 2 + 1 1
- *        3       3 + 2 + 1 1
-          9         + 2 + 1 1
-          9         + 2   2 
-          9         4       
                5

這是一個(gè)前綴表達(dá)式的計(jì)算過程,可以看出每次只需計(jì)算第一個(gè)滿足操作符后跟兩個(gè)操作數(shù)的式子,直到最后就是結(jié)果了。

2.中綴表示法

這也就是我們一般的表示法,他的操作符置于操作數(shù)的中間(例:1 + 2),前面也說過這種方法不容易被計(jì)算機(jī)解析,但他符合人們的普遍用法,許多編程語言也就用這種方法了。在中綴表示法中括號(hào)是必須有的,要不然運(yùn)算順序會(huì)亂掉。因?yàn)楹艹S梦乙簿筒欢嘀v了。

3.后綴表示法

后綴表示法又叫逆波蘭表示法,他的操作符置于操作數(shù)的后面(例:1 2 +),他和前綴表示法都對(duì)計(jì)算機(jī)比較友好,但他很容易用堆棧解析,所以在計(jì)算機(jī)中用的很多。他的解釋過程一般是:操作數(shù)入棧;遇到操作符時(shí),操作數(shù)出棧,求值,將結(jié)果入棧;當(dāng)一遍后,棧頂就是表達(dá)式的值。因此逆波蘭表達(dá)式的求值使用堆棧結(jié)構(gòu)很容易實(shí)現(xiàn),和能很快求值。
注意:逆波蘭記法并不是簡單的波蘭表達(dá)式的反轉(zhuǎn)。因?yàn)閷?duì)于交換律的操作符,它的操作數(shù)寫法仍然是常規(guī)順序,如,波蘭記法“/ 6 3”的逆波蘭記法是“6 3 /”而不是“3 6 /”;數(shù)字的數(shù)位寫法也是常規(guī)順序。
為了更好的了解前綴表達(dá)式的計(jì)算過程,舉個(gè)例子:5 1 2 + 4 * + 3 -,計(jì)算過程如下

復(fù)制代碼 代碼如下:

??臻g     //解釋說明
5
5 1
5 1 2
5 3       //遇到+,1和2出棧,得3,入棧
5 3 4
5 12      //遇到*,3和4出棧,得12,入棧
17        //遇到+,5和12出棧,得17,入棧
17 3
14        //遇到-,17和3出棧,得14,入棧

最后在棧里只有一個(gè)操作數(shù),這就是計(jì)算結(jié)果。由此我們可以看出用堆棧是很容易解析后綴表達(dá)式的。

4.表示法間轉(zhuǎn)化

這里介紹一種簡單的中綴表達(dá)式轉(zhuǎn)化前后綴表達(dá)式的方法,比如這個(gè)式子:a+b*c-(d+e)。
1.按照運(yùn)算符的優(yōu)先級(jí)對(duì)所有的運(yùn)算單位加括號(hào)
式子變成:((a+(b*c))-(d+e))。
2.1.前綴表達(dá)式,把運(yùn)算符號(hào)移動(dòng)到對(duì)應(yīng)的括號(hào)前面
式子變成:-( +(a *(bc)) +(de))
去掉括號(hào):-+a*bc+de
2.2.后綴表達(dá)式,把運(yùn)算符號(hào)移動(dòng)到對(duì)應(yīng)的括號(hào)后面
式子變成:((a(bc)* )+ (de)+ )-
去掉括號(hào):abc*+de+-

相關(guān)文章

  • .NET Core開發(fā)之配置詳解

    .NET Core開發(fā)之配置詳解

    這篇文章給大家分享了.NET Core開發(fā)中相關(guān)配置的知識(shí)點(diǎn)內(nèi)容,有需要的朋友們可以參考下。
    2018-08-08
  • WPF輕松實(shí)現(xiàn)進(jìn)度條的示例代碼

    WPF輕松實(shí)現(xiàn)進(jìn)度條的示例代碼

    WPF中的ProgressBar控件用于表示任務(wù)進(jìn)度,適用于文件下載、數(shù)據(jù)處理等場景,本文將通過XAML和C#代碼展示如何創(chuàng)建一個(gè)基本的WPF進(jìn)度條,并演示如何通過事件處理程序更新進(jìn)度條的值來模擬耗時(shí)操作,感興趣的小伙伴跟著小編一起來看看吧
    2024-12-12
  • WPF自定義控件實(shí)現(xiàn)ItemsControl魚眼效果

    WPF自定義控件實(shí)現(xiàn)ItemsControl魚眼效果

    這篇文章主要為大家詳細(xì)介紹了WPF如何通過自定義控件實(shí)現(xiàn)ItemsControl魚眼效果,文中的示例代碼講解詳細(xì),需要的可以參考一下
    2024-01-01
  • 詳解C# 匿名對(duì)象(匿名類型)、var、動(dòng)態(tài)類型 dynamic

    詳解C# 匿名對(duì)象(匿名類型)、var、動(dòng)態(tài)類型 dynamic

    隨著C#的發(fā)展,該語言內(nèi)容不斷豐富,開發(fā)變得更加方便快捷,C# 的鋒利盡顯無疑。下面通過本文給大家分享C# 匿名對(duì)象(匿名類型)、var、動(dòng)態(tài)類型 dynamic,需要的的朋友參考下吧
    2017-09-09
  • 詳解C#多線程之線程同步

    詳解C#多線程之線程同步

    本文主要介紹了C#線程同步的相關(guān)知識(shí)。具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-01-01
  • C#?webApi創(chuàng)建與發(fā)布、部署、api調(diào)用詳細(xì)教程

    C#?webApi創(chuàng)建與發(fā)布、部署、api調(diào)用詳細(xì)教程

    這篇文章主要給大家介紹了關(guān)于C#?webApi創(chuàng)建與發(fā)布、部署、api調(diào)用的相關(guān)資料,WebApi是微軟在VS2012?MVC4版本中綁定發(fā)行的,WebApi是完全基于Restful標(biāo)準(zhǔn)的框架,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • C#中的隨機(jī)數(shù)函數(shù)Random()

    C#中的隨機(jī)數(shù)函數(shù)Random()

    這篇文章介紹了C#生成隨機(jī)數(shù)的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • C#處理TCP數(shù)據(jù)的方法詳解

    C#處理TCP數(shù)據(jù)的方法詳解

    Tcp是一個(gè)面向連接的流數(shù)據(jù)傳輸協(xié)議,用人話說就是傳輸是一個(gè)已經(jīng)建立好連接的管道,數(shù)據(jù)都在管道里像流水一樣流淌到對(duì)端,那么數(shù)據(jù)必然存在幾個(gè)問題,比如數(shù)據(jù)如何持續(xù)的讀取,數(shù)據(jù)包的邊界等,本文給大家介紹了C#處理TCP數(shù)據(jù)的方法,需要的朋友可以參考下
    2024-06-06
  • C#將布爾類型轉(zhuǎn)換成字節(jié)數(shù)組的方法

    C#將布爾類型轉(zhuǎn)換成字節(jié)數(shù)組的方法

    這篇文章主要介紹了C#將布爾類型轉(zhuǎn)換成字節(jié)數(shù)組的方法,涉及C#中字符串函數(shù)的使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • 再談異常處理try catch finally

    再談異常處理try catch finally

    這篇文章主要介紹了再談異常處理try catch finally 的相關(guān)資料,需要的朋友可以參考下
    2016-01-01

最新評(píng)論

灵宝市| 安图县| 融水| 枣强县| 新余市| 潞西市| 克东县| 大丰市| 竹山县| 乐平市| 北碚区| 富平县| 黄陵县| 罗定市| 焦作市| 漳平市| 广东省| 常山县| 岱山县| 浦江县| 海原县| 白沙| 保靖县| 兖州市| 林周县| 如皋市| 乌苏市| 东兰县| 泰兴市| 宣汉县| 黄大仙区| 阿图什市| 贞丰县| 合江县| 阜康市| 济源市| 巴楚县| 化德县| 治县。| 临泽县| 绍兴县|