版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
計(jì)算與人工智能概論第1章計(jì)算與人工智能概述
計(jì)算的概念1PART1.1.1什么是計(jì)算什么是計(jì)算?在計(jì)算機(jī)科學(xué)領(lǐng)域,計(jì)算是根據(jù)設(shè)定的規(guī)則將一串編碼轉(zhuǎn)換成另一串編碼的過(guò)程。例如:加法問(wèn)題,輸入一對(duì)數(shù)值,輸出是該對(duì)數(shù)值的和。排序問(wèn)題,排序計(jì)算對(duì)每個(gè)輸入表都賦予一個(gè)輸出表,而輸出表的數(shù)據(jù)項(xiàng)與輸入表一樣,只是輸出表的數(shù)據(jù)項(xiàng)是按照升序或降序排列的。在數(shù)學(xué)領(lǐng)域,計(jì)算是抽象數(shù)學(xué)思想在具體數(shù)據(jù)上的應(yīng)用,例如用數(shù)字進(jìn)行加、減、乘、除的運(yùn)算。1.1.1什么是計(jì)算什么是計(jì)算?在計(jì)算機(jī)科學(xué)領(lǐng)域,計(jì)算是根據(jù)設(shè)定的規(guī)則將一串編碼轉(zhuǎn)換成另一串編碼的過(guò)程。例如:加法問(wèn)題,輸入一對(duì)數(shù)值,輸出是該對(duì)數(shù)值的和。排序問(wèn)題,排序計(jì)算對(duì)每個(gè)輸入表都賦予一個(gè)輸出表,而輸出表的數(shù)據(jù)項(xiàng)與輸入表一樣,只是輸出表的數(shù)據(jù)項(xiàng)是按照升序或降序排列的。在數(shù)學(xué)領(lǐng)域,計(jì)算是抽象數(shù)學(xué)思想在具體數(shù)據(jù)上的應(yīng)用,例如用數(shù)字進(jìn)行加、減、乘、除的運(yùn)算。1.1.1什么是計(jì)算計(jì)算的歷史1.1.1什么是計(jì)算可計(jì)算問(wèn)題計(jì)算模型之一:圖靈機(jī)(Turingmachine)阿蘭·麥席森·圖靈于1936年在其發(fā)表的論文《論可計(jì)算數(shù)及其在判定問(wèn)題中的應(yīng)用》中,針對(duì)可計(jì)算邊界問(wèn)題提出了一種抽象的計(jì)算模型——圖靈機(jī)圖靈將邏輯中的任意命題用圖靈機(jī)來(lái)表示和計(jì)算,并按照規(guī)則推導(dǎo)出結(jié)論,其結(jié)果是——可計(jì)算函數(shù)等價(jià)子圖靈機(jī)能計(jì)算的函數(shù)圖靈機(jī)的提出證明了通用計(jì)算理論,肯定了計(jì)算機(jī)實(shí)現(xiàn)的可能性,同時(shí)它給出了計(jì)算機(jī)應(yīng)有的主要架構(gòu),這為計(jì)算機(jī)的誕生和發(fā)展提供了理論基礎(chǔ)可計(jì)算邊界問(wèn)題:哪些問(wèn)題是可計(jì)算的,哪些問(wèn)題是不可計(jì)算的?求解思路:為計(jì)算建立一個(gè)數(shù)學(xué)模型,稱之為計(jì)算模型,然后證明,凡是這個(gè)計(jì)算模型能夠解決的問(wèn)題,就是可計(jì)算的問(wèn)題。1.1.2圖靈機(jī)基本原理圖靈機(jī)的基本原理是用機(jī)器來(lái)模擬人們用紙筆進(jìn)行數(shù)學(xué)運(yùn)算的過(guò)程。圖靈機(jī)將一個(gè)無(wú)限長(zhǎng)的帶子作為無(wú)限存儲(chǔ),它有一個(gè)讀寫(xiě)頭,能在帶子上讀、寫(xiě)和左右移動(dòng)。圖靈機(jī)開(kāi)始運(yùn)作時(shí),帶子上只有輸入串,其他地方都是空白,如果需要保存信息,則其可以將相關(guān)信息寫(xiě)在帶子上。為了讀取已經(jīng)寫(xiě)下的信息,它可以將讀寫(xiě)頭往回移動(dòng)到這個(gè)信息所在的位置。機(jī)器不停地計(jì)算,直到產(chǎn)生輸出為止。1.1.2圖靈機(jī)圖靈機(jī)執(zhí)行計(jì)算的具體案例利用圖靈機(jī)執(zhí)行“1+2=3”的計(jì)算。先定義讀頭讀到“+”之后,依次移動(dòng)讀頭兩次并讀取格子中的數(shù)據(jù);接著讀頭進(jìn)行計(jì)算,最后把計(jì)算結(jié)果寫(xiě)入第二個(gè)數(shù)據(jù)的下一個(gè)格子里,1.1.3什么是計(jì)算機(jī)馮·諾依曼體系結(jié)構(gòu)輸入設(shè)備輸出設(shè)備程序運(yùn)行1.1.3什么是計(jì)算機(jī)計(jì)算機(jī)系統(tǒng):硬件層+操作系統(tǒng)層+應(yīng)用軟件層硬件系統(tǒng)軟件操作系統(tǒng)應(yīng)用軟件工具軟件語(yǔ)言處理系統(tǒng)數(shù)據(jù)庫(kù)管理系統(tǒng)政務(wù)軟件娛樂(lè)軟件學(xué)習(xí)軟件1.1.3什么是計(jì)算機(jī)計(jì)算機(jī)硬件傳統(tǒng)“計(jì)算機(jī)器”多樣化的“計(jì)算機(jī)器”,各種設(shè)備的“大腦”系統(tǒng)在探索最短路徑的過(guò)程中,首先需要從鍵盤(pán)輸入機(jī)器人所處環(huán)境的地圖,然后由操作系統(tǒng)將地圖數(shù)據(jù)傳送到內(nèi)存,由中央處理器對(duì)數(shù)據(jù)進(jìn)行運(yùn)算并獲得結(jié)果,最后在顯示器上輸出尋找到的最短路徑。1.1.3什么是計(jì)算機(jī)計(jì)算機(jī)硬件中央處理器是計(jì)算機(jī)的核心硬件,它往往以處理器芯片的形式存在。在現(xiàn)實(shí)生活中,各類(lèi)處理器芯片無(wú)處不在,多樣化的計(jì)算機(jī)控制著各種機(jī)械設(shè)備運(yùn)行。交通中的汽車(chē)、平衡車(chē)等,日常生活中的冰箱、洗衣機(jī)等智能家居設(shè)備,都與處理器芯片緊密相關(guān)。1.1.3什么是計(jì)算機(jī)計(jì)算機(jī)軟件硬件有形,而軟件無(wú)形。計(jì)算機(jī)軟件多種多樣。它可以是計(jì)算機(jī)系統(tǒng)中的各類(lèi)程序,也可以是用戶與硬件之間的接口程序,還可以是運(yùn)行在硬件上的各種程序的總稱智能終端應(yīng)用軟件軟件供應(yīng)商網(wǎng)上商城商品供應(yīng)商1.1.3什么是計(jì)算機(jī)計(jì)算機(jī)是什么?認(rèn)知世界的工具各種機(jī)器的大腦各種軟件的載體創(chuàng)建虛擬世界的工具計(jì)算的工具1.1.4算法、計(jì)算機(jī)語(yǔ)言與程序算法、計(jì)算機(jī)語(yǔ)言與程序之間的關(guān)系1.1.4算法、計(jì)算機(jī)語(yǔ)言與程序高級(jí)語(yǔ)言源程序及其編譯過(guò)程示意-以智能機(jī)器人尋路計(jì)算兩點(diǎn)間距離為例求智能機(jī)器人在環(huán)境中行走的最短路徑時(shí),需要重復(fù)不斷地求出當(dāng)前位置與下一位置之間的距離。假設(shè)已知機(jī)器人已經(jīng)行走的距離為2cm,機(jī)器人還需要往前走4cm,那么機(jī)器人總共需要行走的路徑長(zhǎng)度為多少呢?算法、計(jì)算機(jī)語(yǔ)言與程序之間的關(guān)系1.1.4算法、計(jì)算機(jī)語(yǔ)言與程序從二進(jìn)制機(jī)器語(yǔ)言到計(jì)算機(jī)語(yǔ)言計(jì)算機(jī)語(yǔ)言的發(fā)展1.1.4算法、計(jì)算機(jī)語(yǔ)言與程序問(wèn)題求解策略與算法用兩種不同的算法解決求解機(jī)器人行走的最短距路徑問(wèn)題針對(duì)最短距路徑求解問(wèn)題,我們可以將其抽象為一個(gè)組合優(yōu)化問(wèn)題,即:機(jī)器人從起點(diǎn)走到終點(diǎn)的過(guò)程中,有n個(gè)節(jié)點(diǎn)需要訪問(wèn),按怎樣的次序訪問(wèn),才能使機(jī)器人訪問(wèn)路徑的“權(quán)值和”最?。勘闅v算法基本思想:利用遍歷算法求解最短距路徑時(shí),可以把復(fù)雜的路徑分解求解,把可能短的每一條路徑通過(guò)窮舉法列舉出來(lái),再比較得出最短距路徑,該最短距路徑即為問(wèn)題的解。時(shí)間復(fù)雜性:O(n!)。貪心算法基本思想:利用貪心算法求解最短距路徑時(shí),從某一個(gè)節(jié)點(diǎn)開(kāi)始,每次選擇一個(gè)節(jié)點(diǎn),直到所有節(jié)點(diǎn)都被選完。時(shí)間復(fù)雜性:多項(xiàng)式量級(jí)O(n3)。貪心算法犧牲了結(jié)果的精度(即求得的不一定是最優(yōu)解),但換來(lái)了時(shí)間上可觀的節(jié)約,如將算法復(fù)雜度直接降到多項(xiàng)式量級(jí)O(n3)。1.1.4算法、計(jì)算機(jī)語(yǔ)言與程序問(wèn)題求解策略與算法用兩種不同的算法解決求解機(jī)器人行走的最短距路徑問(wèn)題遍歷算法流程圖貪心算法流程圖什么是計(jì)算思維?2PART1.2.1計(jì)算思維的概念計(jì)算思維的概念周以真教授在美國(guó)計(jì)算機(jī)權(quán)威期刊《CommunicationsoftheACM》雜志上給出,并定義的計(jì)算思維(ComputationalThinking):計(jì)算思維是運(yùn)用計(jì)算機(jī)科學(xué)的基礎(chǔ)概念進(jìn)行問(wèn)題求解、系統(tǒng)設(shè)計(jì)、以及人類(lèi)行為理解等涵蓋計(jì)算機(jī)科學(xué)之廣度的一系列思維活動(dòng)。計(jì)算思維教學(xué)改革宣言2013年2006年教育部高等學(xué)校大學(xué)計(jì)算機(jī)課程教學(xué)指導(dǎo)委員會(huì)發(fā)表旨在大力推進(jìn)以計(jì)算思維為切入點(diǎn)的計(jì)算機(jī)教學(xué)改革宣言。教育與科學(xué)思維;計(jì)算機(jī)教育與計(jì)算思維;人才培養(yǎng)與計(jì)算思維教學(xué)改革;構(gòu)建多方位、立體化人才培養(yǎng)平臺(tái)。CMU計(jì)算機(jī)系主任/學(xué)術(shù)事務(wù)副校長(zhǎng)NSF信息學(xué)部主任微軟研究院副總裁哥倫比亞大學(xué)數(shù)據(jù)科學(xué)研究院主任1.2.1計(jì)算思維的概念計(jì)算思維的概念計(jì)算思維是人類(lèi)應(yīng)具備的第三種思維理論思維:假設(shè)/預(yù)設(shè)定義/性質(zhì)/定理證明.推理和演繹實(shí)驗(yàn)思維:實(shí)驗(yàn)觀察發(fā)現(xiàn)、推斷與總結(jié).觀察與歸納計(jì)算思維:設(shè)計(jì),構(gòu)造與計(jì)算.設(shè)計(jì)與構(gòu)造計(jì)算思維關(guān)注的是人類(lèi)思維中有關(guān)可行性、可構(gòu)造性和可評(píng)價(jià)性的部分當(dāng)前環(huán)境下,理論與實(shí)驗(yàn)手段在面臨大規(guī)模數(shù)據(jù)的情況下,不可避免地要用計(jì)算手段來(lái)輔助進(jìn)行。1.2.2問(wèn)題求解方法Google計(jì)算思維計(jì)算思維(CT)是一個(gè)有著諸多特點(diǎn)和要求的問(wèn)題解決過(guò)程。可用于解決人文科學(xué)、數(shù)學(xué)和科學(xué)等各種學(xué)科的問(wèn)題。不但能了解各學(xué)科之間的關(guān)聯(lián),同時(shí)也能夠體會(huì)到課外生活與課堂內(nèi)的知識(shí)之間的聯(lián)系。分解:把數(shù)據(jù)、過(guò)程或問(wèn)題分解成更小的、易于管理的部分。模式識(shí)別:觀察數(shù)據(jù)的模式、趨勢(shì)和規(guī)律。抽象:識(shí)別模式形成背后的一般原理。算法設(shè)計(jì):為解決某一類(lèi)問(wèn)題撰寫(xiě)一系列詳細(xì)步驟1.2.2問(wèn)題求解方法計(jì)算思維與計(jì)算機(jī)科學(xué)的區(qū)別1.2.2問(wèn)題求解方法計(jì)算思維案例1:分解分解:分解就是把大問(wèn)題拆解成小問(wèn)題,把復(fù)雜問(wèn)題拆解成簡(jiǎn)單問(wèn)題,把新問(wèn)題拆分成老問(wèn)題。對(duì)于一塊大蛋糕,如果不切開(kāi),吃起來(lái)是非常困難的。使用工具把它分成一小塊一小塊來(lái)吃,一小塊也不可能一次吃完,還要一口一口吃。1.2.2問(wèn)題求解方法計(jì)算思維案例2:模式識(shí)別模式識(shí)別:尋找問(wèn)題內(nèi)或者子問(wèn)題之間的模式、規(guī)律或者趨勢(shì)。簡(jiǎn)單來(lái)說(shuō),就是找規(guī)律。一個(gè)蘋(píng)果的價(jià)格是3元,3個(gè)蘋(píng)果是9元,即單價(jià)乘上數(shù)量,現(xiàn)在知道一個(gè)梨子是4元,5個(gè)梨子多少錢(qián)?模式:?jiǎn)蝺r(jià)*數(shù)量=總價(jià)1.2.2問(wèn)題求解方法計(jì)算思維案例3:模式歸納模式發(fā)掘就是探索學(xué)科案例中蘊(yùn)含的一些模式,并形成一套您獨(dú)有的、借助模式識(shí)別方法進(jìn)行問(wèn)題研究的流程。1.2.2問(wèn)題求解方法計(jì)算思維案例4:抽象抽象:指事物相關(guān)和重要的信息,它涉及從無(wú)關(guān)細(xì)節(jié)中分離出核心信息。抽象是計(jì)算思維的核心。1.2.2問(wèn)題求解方法計(jì)算思維案例5:算法設(shè)計(jì)算法設(shè)計(jì):完成某項(xiàng)任務(wù)的一系列指令,即解決問(wèn)題的方案(步驟)。步驟中又包含分解,抽象,及模式識(shí)別,它就像一條線,串起計(jì)算思維在各個(gè)領(lǐng)域的應(yīng)用。例如火星機(jī)器人著陸后,如何在無(wú)人控制情況下,實(shí)現(xiàn)自動(dòng)尋路呢?1分解:在控制火星機(jī)器人翻越前面障礙的過(guò)程當(dāng)中,機(jī)器人要左右移動(dòng),可以把它分解成左移或者是右移的動(dòng)作。2模式:左移的模式與右移類(lèi)似,左移設(shè)計(jì)好了,直接運(yùn)用到右移即可。3抽象:機(jī)器人與障礙物的處理可以將機(jī)器人抽象成多邊形,通過(guò)計(jì)算多邊形之間是否重疊來(lái)判斷其是否撞到障礙物導(dǎo)致游戲失敗。4算法:實(shí)現(xiàn)程序,依次完成角色導(dǎo)入(即背景,、火星機(jī)器人、障礙圖標(biāo)等)、設(shè)定機(jī)器人初始位置、控制機(jī)器人上下移動(dòng)、背景移動(dòng),設(shè)計(jì)碰撞檢測(cè)算法等。1.2.3算法-計(jì)算系統(tǒng)的靈魂算法、數(shù)據(jù)和計(jì)算能力是人工智能的三大基石,其中算法是非常重要的一個(gè)部分。好的算法能節(jié)約很多資源,甚至能夠完成一些不可能完成的任務(wù)。在任何應(yīng)用領(lǐng)域,精心設(shè)計(jì)的算法都是解決大型問(wèn)題最有效的方法。人工智能機(jī)器學(xué)習(xí)算法包括包括監(jiān)督學(xué)習(xí)、無(wú)監(jiān)督學(xué)習(xí)、半監(jiān)督學(xué)習(xí),強(qiáng)化學(xué)習(xí)、深度學(xué)習(xí)、遷移學(xué)習(xí)、強(qiáng)化學(xué)習(xí)等。人工智能機(jī)器學(xué)習(xí)算法分類(lèi)人工智能之機(jī)器學(xué)習(xí)算法探索人工智能3PART1.3.1人工智能概述人工智能(ArtificialIntelligence,AI)是指由人制造出來(lái)的系統(tǒng)所表現(xiàn)出的智能,是計(jì)算機(jī)科學(xué)的重要分支,旨在通過(guò)模擬人類(lèi)智能的思維、學(xué)習(xí)和決策過(guò)程,使機(jī)器能夠執(zhí)行需要人類(lèi)智力才能完成的任務(wù)。弱人工智能專(zhuān)注于解決單一領(lǐng)域或特定任務(wù)的智能系統(tǒng),其能力邊界受預(yù)設(shè)規(guī)則或訓(xùn)練數(shù)據(jù)的限制。例如,人臉識(shí)別、智能機(jī)器人、語(yǔ)音識(shí)別等。強(qiáng)人工智能具備與人類(lèi)相當(dāng)?shù)耐ㄓ弥悄?,能夠自主學(xué)習(xí)、跨領(lǐng)域推理并適應(yīng)未知環(huán)境,目前強(qiáng)人工智能仍處于理論探索階段,尚未實(shí)現(xiàn)技術(shù)突破。目前的大語(yǔ)言模型仍屬于弱人工智能。什么是人工智能1.3.2智能移動(dòng)機(jī)器人路徑規(guī)劃智能移動(dòng)機(jī)器人路徑規(guī)劃路徑規(guī)劃環(huán)境示意圖本質(zhì)智能移動(dòng)機(jī)器人路徑規(guī)劃是一個(gè)集環(huán)境感知、動(dòng)態(tài)決策與規(guī)劃、行為控制與執(zhí)行等多種問(wèn)題于一體的綜合人工智能例子,它融合了計(jì)算機(jī)技術(shù)、自動(dòng)控制、傳感器技術(shù)、信息處理以及人工智能等多學(xué)科知識(shí),是目前科學(xué)技術(shù)發(fā)展最活躍的領(lǐng)域之一。問(wèn)題描述:讓一個(gè)智能機(jī)器人從迷宮的起點(diǎn)S出發(fā),自動(dòng)繞過(guò)迷宮內(nèi)的障礙物,并使用最少的時(shí)間走到迷宮終點(diǎn)E。智能機(jī)器人:包含有機(jī)身、電源、傳感器、微處理器、電機(jī)及驅(qū)動(dòng)等部分,智能機(jī)器人利用傳感器感知檢測(cè)前方、左邊、右邊是否有障礙物,在電機(jī)控制下可以執(zhí)行直行、左轉(zhuǎn)、右轉(zhuǎn)等運(yùn)動(dòng)及避障行為。環(huán)境地圖:有起點(diǎn)與終點(diǎn),有墻,有墻與墻之間的通道,外圍有邊界。問(wèn)題描述1.3.2智能移動(dòng)機(jī)器人路徑規(guī)劃計(jì)算思維首先是需要將問(wèn)題分解成一系列較小可管理的問(wèn)題過(guò)程。智能移動(dòng)機(jī)器人路徑規(guī)劃問(wèn)題可以分解為兩個(gè)子問(wèn)題:子問(wèn)題1
機(jī)器人對(duì)地圖的“記憶”子問(wèn)題2探索機(jī)器人在環(huán)境中行走時(shí)可能面對(duì)的情況以及該采取的行動(dòng)
子問(wèn)題1地圖的構(gòu)建與表示機(jī)器人對(duì)環(huán)境的記憶子問(wèn)題2智能移動(dòng)機(jī)器人遇到的狀況機(jī)器人的行動(dòng)
左邊有墻,前邊沒(méi)有墻左邊沒(méi)墻左邊有墻,前邊也有墻智能移動(dòng)機(jī)器人路徑規(guī)劃問(wèn)題分解問(wèn)題分解1.3.2智能移動(dòng)機(jī)器人路徑規(guī)劃人(蒙上眼睛)機(jī)器人靠墻行走靠墻行走用手搜索用紅外避障傳感器感知雙手配合用兩個(gè)紅外避障傳感器模式識(shí)別是要觀察找出問(wèn)題的模式、趨勢(shì)和規(guī)律。人尋路:用兩只手配合并沿著墻壁探索路線的時(shí)候,我們能夠在各種狀況下(如拐角)很好地做出相應(yīng)的判斷,并順利找到出口機(jī)器人尋路:將紅外傳感器嵌入機(jī)器人,作為機(jī)器人的“雙臂”,用以感知檢測(cè)前方、左邊、右邊是否有障礙物智能移動(dòng)機(jī)器人尋路與人尋路相似之處模式識(shí)別1.3.2智能移動(dòng)機(jī)器人路徑規(guī)劃模式挖掘(抽象)即探尋模式形成背后的一般原理,尋找一類(lèi)問(wèn)題的一般方法。地圖構(gòu)建將地圖劃分成網(wǎng)格,藍(lán)色格子代表墻壁,白色格子代表路地圖抽象把地圖轉(zhuǎn)換為數(shù)學(xué)形式,用1和0分別定義藍(lán)色格子和白色格子機(jī)器人狀態(tài)行為抽象機(jī)器人感知探測(cè)不同狀態(tài)時(shí)對(duì)應(yīng)執(zhí)行不同動(dòng)作地圖構(gòu)建地圖抽象機(jī)器人狀態(tài)行為抽象抽象1.3.2智能移動(dòng)機(jī)器人路徑規(guī)劃算法設(shè)計(jì)即為解決某一類(lèi)問(wèn)題撰寫(xiě)一系列詳細(xì)的指令。以智能移動(dòng)機(jī)器人尋路左手定則的算法流程為例:檢測(cè)左側(cè)是否有墻:如果沒(méi)有則左轉(zhuǎn),如果有則執(zhí)行②;檢測(cè)前方是否有墻;如果沒(méi)有則直行,如果有則執(zhí)行③;檢測(cè)右側(cè)是否有墻;如果沒(méi)有則右轉(zhuǎn),如果有則左轉(zhuǎn);直到移動(dòng)機(jī)器人到達(dá)目的終點(diǎn),完成任務(wù)。智能移動(dòng)機(jī)器人尋路(左手定則)算法設(shè)計(jì)1.3.3人工智能歷史圖靈測(cè)試圖靈測(cè)試是區(qū)分人與人工智能設(shè)備的一個(gè)測(cè)試,測(cè)試中要求一個(gè)人和一臺(tái)擁有智能的機(jī)器設(shè)備在互不相知的情況下,進(jìn)行隨機(jī)的提問(wèn)交流,如果超過(guò)3成的測(cè)試者沒(méi)有發(fā)現(xiàn)對(duì)方是機(jī)器設(shè)備,就代表這臺(tái)設(shè)備擁有“人類(lèi)智能”。聊天機(jī)器人尤金.古斯特曼清華大學(xué)語(yǔ)音與語(yǔ)言實(shí)驗(yàn)中心(CSLT)研發(fā)的作詩(shī)機(jī)器人“薇薇”1.3.3人工智能歷史圖靈測(cè)試和人工智能的關(guān)系“全部智能行為”對(duì)應(yīng)的集合和“全部人類(lèi)行為”集合之間有相交部分也有不同之處。全部智能行為和全部人類(lèi)行為之間的交集(如猴媽媽分桃)即可通過(guò)圖靈測(cè)試。猴媽媽擁有部分智能行為,可以將一堆桃子較為公平的分給3個(gè)兒子,但她并不具有全部人類(lèi)行為,但我們可以說(shuō)其擁有智能并可通過(guò)圖靈測(cè)試。類(lèi)似的機(jī)器人擁有某一項(xiàng)智能行為,比如自然語(yǔ)言處理、圖像識(shí)別等,并不一定要擁有全部人類(lèi)行為,但仍可通過(guò)圖靈測(cè)試。因此,主流的人工智能是以解決人腦能解決的問(wèn)題為目標(biāo),注重解題能力,而不在乎解題行為是否和人類(lèi)相似。1.3.3人工智能歷史人工智能領(lǐng)域關(guān)鍵事件時(shí)間軸1.3.4人工智能相關(guān)研究人工智能近10年“十大人工智能研究熱點(diǎn)”人工智能涉及計(jì)算機(jī)科學(xué)、電子、自動(dòng)控制、機(jī)械、心理學(xué)、倫理學(xué)、哲學(xué)和語(yǔ)言學(xué)等多個(gè)學(xué)科,幾乎涵蓋自然科學(xué)和社會(huì)科學(xué)的所有學(xué)科,其范圍已遠(yuǎn)遠(yuǎn)超出了計(jì)算機(jī)科學(xué)的范疇,它的終極目標(biāo)是使機(jī)器擁有像人類(lèi)一樣的智力,可以替代人類(lèi)實(shí)現(xiàn)學(xué)習(xí)、推理、思考、規(guī)劃等多種功能。從應(yīng)用的角度看,人工智能的研究主要集中在以下幾個(gè)方面:機(jī)器人、語(yǔ)音識(shí)別、模式識(shí)別、自然語(yǔ)言處理、專(zhuān)家系統(tǒng)、計(jì)算機(jī)視覺(jué)、計(jì)算智能、自動(dòng)程序設(shè)計(jì)、智能控制與智能規(guī)劃等。AMiner評(píng)選出的近10年“十大人工智能研究熱點(diǎn)”1.3.4人工智能相關(guān)研究1.3.4人工智能相關(guān)研究人工智能研究案例在航天領(lǐng)域,人工智能已經(jīng)成為中國(guó)航天的“探路者”,例如火星探測(cè)器?!疤靻?wèn)一號(hào)”使用了基于計(jì)算機(jī)視覺(jué)、自然語(yǔ)言處理、機(jī)器學(xué)習(xí)、語(yǔ)音識(shí)別等技術(shù)的人工智能技術(shù)。人臉檢測(cè)的任務(wù)就是判斷給定的圖像上是否存在人臉,如果人臉存在,就給出全部人臉?biāo)幍奈恢眉捌浯笮 ?.3.4人工智能相關(guān)研究人工智能研究案例AlphaGo的實(shí)現(xiàn)原理給勝率高的點(diǎn)分配更多的計(jì)算力任意時(shí)間算法,計(jì)算越多越精確1、選取2、展開(kāi)3、評(píng)估4、倒傳MCTS(蒙特卡洛樹(shù)搜索)通過(guò)隨機(jī)模擬走子勝率來(lái)判定形勢(shì)速度很快(1ms/盤(pán))隨機(jī)性與合理性的平衡Rollout(隨機(jī)模擬走子)基本算法快速模擬圍棋是完全信息博弈,從理論上來(lái)說(shuō)可以通過(guò)暴力搜索所有可能的對(duì)弈過(guò)程來(lái)確定最優(yōu)的走法1.3.4人工智能相關(guān)研究人工智能研究案例手機(jī)中的AI人工智能發(fā)展4PART1.4.1人工智能應(yīng)用領(lǐng)域時(shí)間18世紀(jì)末工業(yè)1.0創(chuàng)造了機(jī)器工廠的“蒸汽時(shí)代”20世紀(jì)初電力廣泛應(yīng)用蒸汽機(jī)信息物聯(lián)系統(tǒng)1970年代初今天工業(yè)2.0將人類(lèi)帶入分工明確、大批量生產(chǎn)的流水線模式和“電氣時(shí)代”工業(yè)3.0應(yīng)用電子信息技術(shù),進(jìn)一步提高生產(chǎn)自動(dòng)化水平自動(dòng)化、信息化工業(yè)4.0開(kāi)始應(yīng)用信息物理融合系統(tǒng)(CPS)復(fù)雜度來(lái)臨悄悄互聯(lián)網(wǎng)時(shí)代終結(jié)正在人工智能機(jī)器人交通工具(即無(wú)人機(jī)、無(wú)人駕駛等)VR(虛擬現(xiàn)實(shí))1.4.1人工智能應(yīng)用領(lǐng)域1.4.1人工智能應(yīng)用領(lǐng)域智能制造1.4.1人工智能應(yīng)用領(lǐng)域智慧農(nóng)業(yè)1.4.1人工智能應(yīng)用領(lǐng)域智能教育1.4.1人工智能應(yīng)用領(lǐng)域智慧金融1.4.1人工智能應(yīng)用領(lǐng)域智慧醫(yī)療1.4.1人工智能應(yīng)用領(lǐng)域智能家居1.4.2人工智能發(fā)展在當(dāng)今智能化社會(huì)的發(fā)展趨勢(shì)下,機(jī)器人走迷宮不僅具有一定的比賽意義,還具有廣泛的實(shí)用價(jià)值。其中運(yùn)用到諸如人工智能、計(jì)算方法、自動(dòng)化等技術(shù)可以推廣到諸如自動(dòng)導(dǎo)航、工廠自動(dòng)化、智能家居、避障機(jī)器人、火星探測(cè)機(jī)器人等行業(yè)中。1.4.2人工智能發(fā)展計(jì)算與人工智能概論第2章計(jì)算系統(tǒng)
計(jì)算與計(jì)算機(jī)簡(jiǎn)述2PART如何實(shí)現(xiàn)不同要求的計(jì)算?應(yīng)用舉例實(shí)現(xiàn)功能天文一號(hào)火星探測(cè)器環(huán)繞、著陸、巡視智慧城市城市治理高效有序,數(shù)據(jù)開(kāi)放共融共享,網(wǎng)絡(luò)空間安全清朗等智慧農(nóng)業(yè)農(nóng)業(yè)可視化,遠(yuǎn)程判斷,遠(yuǎn)程控制等如何實(shí)現(xiàn)不同要求的計(jì)算?——問(wèn)題分解問(wèn)題1:數(shù)據(jù)采集火星探測(cè)智慧城市智慧農(nóng)業(yè)獲取火星表面數(shù)據(jù)(光照、沙塵、大氣、溫度、土壤等)獲取城市的各種數(shù)據(jù)(交通、氣象、社交媒體等)獲取農(nóng)田的各種數(shù)據(jù)(溫度、濕度、光照、土壤等)如何實(shí)現(xiàn)不同要求的計(jì)算?——問(wèn)題分解問(wèn)題2:數(shù)據(jù)融合處理與分析火星探測(cè)智慧城市智慧農(nóng)業(yè)計(jì)算分析火星表面數(shù)據(jù)融合處理非結(jié)構(gòu)化數(shù)據(jù),獲取有用數(shù)據(jù)融合處理并分析農(nóng)田各種數(shù)據(jù)數(shù)據(jù)記錄學(xué)號(hào)、姓名、三門(mén)功課的成績(jī)?nèi)绾螌?shí)現(xiàn)不同要求的計(jì)算?——問(wèn)題分解問(wèn)題3:數(shù)據(jù)存儲(chǔ)火星探測(cè)智慧城市智慧農(nóng)業(yè)火星車(chē)“大腦”記錄各種狀態(tài)(電池能量、行走路線等)城市云中心記錄城市各種狀態(tài)(交通狀況等)農(nóng)田數(shù)據(jù)中心記錄農(nóng)田各種狀態(tài)(作物生長(zhǎng)狀況等)例11.1score=[["101","Mary",80,85,90],["102","Rose",80,90,95],["103","Mike",75,72,65],["104","Peter",65,63,58],["105","Harry",95,93,88]]#將數(shù)據(jù)存入二維列表foriinrange(5):zf=score[i][2]+score[i][3]+score[i][4]#計(jì)算總分
score[i].append(zf)#將總分加入列表,例如score[0]為["101","Mary",80,85,90,255]score=sorted(score,key=lambdak:k[5],reverse=True)#對(duì)列表按第六列排序foriinrange(5):#輸出列表
print("學(xué)號(hào){}姓名{}總分{}".format(score[i][0],score[i][1],score[i][5]))如何實(shí)現(xiàn)不同要求的計(jì)算?——問(wèn)題分解問(wèn)題4:智能決策火星探測(cè)智慧城市智慧農(nóng)業(yè)火星車(chē)休眠、工作城市各機(jī)構(gòu)實(shí)現(xiàn)網(wǎng)絡(luò)互聯(lián)、數(shù)據(jù)互通幫助農(nóng)戶做出正確決策如何實(shí)現(xiàn)不同要求的計(jì)算?——計(jì)算思維問(wèn)題1:數(shù)據(jù)采集問(wèn)題2:數(shù)據(jù)融合處理與分析問(wèn)題3:數(shù)據(jù)存儲(chǔ)問(wèn)題4:智能決策計(jì)算環(huán)境的輸入集合計(jì)算環(huán)境的固定程序計(jì)算環(huán)境的狀態(tài)集合計(jì)算環(huán)境的輸出結(jié)合模式分析圖靈機(jī)模型問(wèn)題抽象問(wèn)題分解圖靈機(jī)模型螞蟻覓食:用一個(gè)無(wú)限長(zhǎng)的紙帶模擬螞蟻行走的路徑,這條紙帶被分成若干個(gè)小的方格,每個(gè)方格只有黑白兩種顏色來(lái)表示該方格是否有食物。螞蟻的固定程序:黑色為食物區(qū),螞蟻向前一格;白色是空白區(qū),沒(méi)有食物則向后一格輸入集合IN={黑色,白色};輸出集合OUT={向前一格,向后一格}螞蟻產(chǎn)生了循環(huán)圖靈機(jī)模型score.csv文件中存儲(chǔ)五位同學(xué)的學(xué)號(hào)、姓名和三門(mén)功課的成績(jī)。更新螞蟻的固定程序:螞蟻在黑色格子,如果是饑餓狀態(tài),則吃掉食物,黑色格子變成白色格子;如果是吃飽狀態(tài),則后移一格。螞蟻在白色格子,如果是饑餓狀態(tài),則停下來(lái)等格子變黑,;如果是吃飽狀態(tài)則前移一格。輸入集合IN={黑色,白色};輸出集合OUT={向前一格,向后一格,吃完食物格子變白,等格子變黑};內(nèi)部狀態(tài)S={饑餓,吃飽}圖靈機(jī)模型例11.2f1=open(“score.csv”)lb=[]#將數(shù)據(jù)存入二維列表forlineinf1:xx=line.strip().split(“,”)zf=eval(xx[2])+eval(xx[3])+eval(xx[4])#計(jì)算總分
lb.append([xx[0],xx[1],zf])lb=sorted(lb,key=lambdak:k[2],reverse=True)#對(duì)列表按第三列排序foriinrange(5):#輸出列表
print("學(xué)號(hào){}姓名{}總分{}".format(lb[i][0],lb[i][1],lb[i][2]))計(jì)算score.csv文件中每位同學(xué)的總分,降序排列并輸出蟻群最優(yōu)尋食路徑原理1.螞蟻在路徑上釋放信息素2.遇到?jīng)]有走過(guò)的路口(或障礙物),就隨機(jī)挑選一條路走。同時(shí),釋放信息素。3.信息素濃度與路徑長(zhǎng)度成反比。如果之后的螞蟻再次遇到該路口(或障礙物),就選擇信息濃度較高的路徑。4.最優(yōu)路徑上的信息素濃度越來(lái)越大5.最終蟻群找到最優(yōu)尋食路徑輸入集合IN={環(huán)境信息(路徑、路口、障礙物等)};輸出集合OUT={選擇信息素過(guò)多的路徑、在感知范圍內(nèi)感知食物并朝食物方向前進(jìn),隨機(jī)移動(dòng)};內(nèi)部狀態(tài)S={環(huán)境信息(螞蟻行走對(duì)環(huán)境信息造成的改變)}圖靈機(jī)邏輯結(jié)構(gòu)上圖靈機(jī)由四個(gè)部分組成:一個(gè)無(wú)限長(zhǎng)的存儲(chǔ)帶,一個(gè)讀寫(xiě)頭,內(nèi)部狀態(tài)存儲(chǔ)器,規(guī)則邏輯。相加結(jié)果放入寄存器“+”:根據(jù)規(guī)則把第9個(gè)和第10個(gè)方格內(nèi)數(shù)字相加,結(jié)果放在寄存器中圖靈機(jī)邏輯結(jié)構(gòu)上圖靈機(jī)由四個(gè)部分組成:一個(gè)無(wú)限長(zhǎng)的存儲(chǔ)帶,一個(gè)讀寫(xiě)頭,內(nèi)部狀態(tài)存儲(chǔ)器,規(guī)則邏輯?!癝”:根據(jù)規(guī)則將前面相加的結(jié)果放置在下一格子里對(duì)應(yīng)的格子,即放置在第9格格子內(nèi)12馮·諾依曼體系結(jié)構(gòu)相當(dāng)于圖靈機(jī)的讀頭計(jì)算機(jī)的工作原理——中央處理器例SQL語(yǔ)句實(shí)現(xiàn)計(jì)算學(xué)生的總分并排序的功能計(jì)算機(jī)工作原理——存儲(chǔ)器計(jì)算機(jī)工作原理——輸入/輸出設(shè)備、總線輸入/輸出設(shè)備:輸入設(shè)備用于向信息處理系統(tǒng)提供數(shù)據(jù)和控制信號(hào)。輸出設(shè)備根據(jù)從信息處理系統(tǒng)中接收到的數(shù)據(jù)和指令執(zhí)行特定任務(wù)輸入設(shè)備:鍵盤(pán)、鼠標(biāo)、掃描儀、數(shù)字相機(jī)、手柄等都是輸入設(shè)備。輸出設(shè)備:打印機(jī)、投影機(jī)、顯示屏、揚(yáng)聲器等都是輸出設(shè)備。總線:總線是連接在計(jì)算機(jī)各部分之間進(jìn)行信息傳送的一組公共傳輸線,它將各大部件連接成一個(gè)整體。并行計(jì)算串行計(jì)算并行計(jì)算嵌入式計(jì)算機(jī)特征通用計(jì)算機(jī)嵌入式計(jì)算機(jī)形式和類(lèi)型按其體系結(jié)構(gòu)、運(yùn)算速度和結(jié)構(gòu)規(guī)模等因素分為大、中、小型機(jī)和微型機(jī)形式多樣,應(yīng)用領(lǐng)域廣泛,按應(yīng)用來(lái)分組成通用處理器、標(biāo)準(zhǔn)總線和外設(shè),軟件和硬件相對(duì)獨(dú)立面向應(yīng)用的嵌入式微處理器,總線和外部接口多集成在處理器內(nèi)部。軟件和硬件緊密集成在一起開(kāi)發(fā)方式開(kāi)發(fā)平臺(tái)和運(yùn)行平臺(tái)都是通用機(jī)算機(jī)采用交叉開(kāi)發(fā)方式,開(kāi)發(fā)平臺(tái)一般是通用計(jì)算機(jī),運(yùn)行平臺(tái)是嵌入式計(jì)算機(jī)設(shè)計(jì)重點(diǎn)高速、海量的數(shù)值計(jì)算,總線速度無(wú)線提升,存儲(chǔ)容量無(wú)線擴(kuò)大智能化控制能力,嵌入性能、控制能力的可靠性
計(jì)算執(zhí)行2.2PART操作系統(tǒng)用戶面對(duì)的計(jì)算機(jī)系統(tǒng)操作系統(tǒng)向外支持應(yīng)用軟件的開(kāi)發(fā)和運(yùn)行,向內(nèi)負(fù)責(zé)管理計(jì)算機(jī)系統(tǒng)中各種獨(dú)立的硬件,使他們可以協(xié)調(diào)工作。操作系統(tǒng)華為鴻蒙操作系統(tǒng)是我國(guó)自主研發(fā)的計(jì)算機(jī)操作系統(tǒng)計(jì)算機(jī)的工作流程計(jì)算機(jī)的工作流程是開(kāi)發(fā)人員通過(guò)輸入設(shè)備編寫(xiě)一段源程序(也稱源文件),源程序經(jīng)過(guò)編譯、鏈接和裝載進(jìn)入內(nèi)存,操作系統(tǒng)控制中央處理器對(duì)源程序進(jìn)行運(yùn)算,最后向用戶展示結(jié)果。在這個(gè)過(guò)程中,計(jì)算機(jī)執(zhí)行的語(yǔ)言和開(kāi)發(fā)人員編寫(xiě)的語(yǔ)言是同一種語(yǔ)言嗎?編譯、鏈接和裝載程序C語(yǔ)言、Java、Python等機(jī)器語(yǔ)言匯編語(yǔ)言編譯過(guò)程應(yīng)用程序源文件對(duì)源代碼中的偽指令進(jìn)行處理編譯程序通過(guò)詞法分析和語(yǔ)法分析,在確認(rèn)所有的指令都符合語(yǔ)法規(guī)則之后,將其翻譯成匯編文件匯編程序?qū)R編文件翻譯成機(jī)器語(yǔ)言的目標(biāo)文件鏈接程序程序通過(guò)編譯程序生成了多個(gè)目標(biāo)文件,鏈接程序?qū)⑦@些目標(biāo)文件以及它們所需的庫(kù)函數(shù)“串”在一起,形成可執(zhí)行文件。程序的鏈接有以下三種方式:靜態(tài)鏈接:在程序運(yùn)行之前,先將各目標(biāo)文件及它們所需的庫(kù)函數(shù)鏈接成一個(gè)完整的可執(zhí)行文件,之后不再拆開(kāi)。裝入時(shí)動(dòng)態(tài)鏈接:將用戶源程序編譯后得到的一組目標(biāo)文件,在裝入內(nèi)存時(shí),采用邊裝入邊鏈接的方式。運(yùn)行時(shí)動(dòng)態(tài)鏈接:對(duì)某些目標(biāo)文件的鏈接,只在程序執(zhí)行中需要該模塊時(shí),才對(duì)它進(jìn)行鏈接。裝載程序在運(yùn)行可執(zhí)行文件時(shí),通過(guò)裝載器來(lái)解析可執(zhí)行文件,并將對(duì)應(yīng)的指令和數(shù)據(jù)寫(xiě)入內(nèi)存中,CPU即可運(yùn)行程序。將一個(gè)可執(zhí)行文件裝入內(nèi)存時(shí),可采用三種方式:絕對(duì)裝入方式、可重定位裝入方式和動(dòng)態(tài)運(yùn)行時(shí)裝入方式。絕對(duì)裝入方式:在編譯時(shí),如果知道程序?qū)Ⅰv留在內(nèi)存的什么位置,那么編譯程序?qū)a(chǎn)生絕對(duì)地址的目標(biāo)代碼。在裝載程序時(shí),按照可執(zhí)行文件中的地址,將程序和數(shù)據(jù)寫(xiě)入內(nèi)存。在寫(xiě)入內(nèi)存后,不許對(duì)程序和數(shù)據(jù)的地址進(jìn)行修改,程序中所使用的絕對(duì)地址,既可在編譯或匯編時(shí)給出,也可由開(kāi)發(fā)人員直接賦予??芍囟ㄎ谎b入方式:根據(jù)內(nèi)存當(dāng)前使用情況,將可執(zhí)行文件裝載到內(nèi)存的某個(gè)位置。動(dòng)態(tài)運(yùn)行時(shí)裝入方式:在把可執(zhí)行文件寫(xiě)入內(nèi)存后,并不立即把可執(zhí)行文件中的相對(duì)地址轉(zhuǎn)換為絕對(duì)地址,而是把這種地址轉(zhuǎn)換推遲到程序真正執(zhí)行時(shí)才進(jìn)行。因此,寫(xiě)入內(nèi)存后的所有地址都仍是相對(duì)地址。程序、進(jìn)程和線程程序(Program)是一個(gè)靜態(tài)的概念,一般對(duì)應(yīng)于操作系統(tǒng)中的一個(gè)可執(zhí)行文件,進(jìn)程(Process)是執(zhí)行中的程序,是一個(gè)動(dòng)態(tài)的概念,是資源分配和調(diào)度的基本單位,也是操作系統(tǒng)結(jié)構(gòu)的基礎(chǔ)。線程(Thread)是進(jìn)程的一個(gè)實(shí)體,是CPU調(diào)度和分派的基本單位,是比進(jìn)程更小的能獨(dú)立運(yùn)行的基本單位。概念:程序和進(jìn)程之間的關(guān)系當(dāng)打開(kāi)多個(gè)應(yīng)用程序時(shí),每個(gè)應(yīng)用代表了一個(gè)進(jìn)程,操作系統(tǒng)為這些進(jìn)程分配CPU資源,使用戶可以同時(shí)使用這些應(yīng)用程序。進(jìn)程和線程之間的關(guān)系進(jìn)程和線程從概念上區(qū)分,進(jìn)程是擁有資源的基本單位;線程是調(diào)度的基本單位,它不擁有資源(除了在運(yùn)行過(guò)程中必不可少的資源,其本身基本不擁有資源)。進(jìn)程調(diào)度進(jìn)程調(diào)度的過(guò)程包括:1.保存處理機(jī)的現(xiàn)場(chǎng)信息。2.按某種方式選取進(jìn)程。3.分派程序把處理機(jī)分配給該進(jìn)程。進(jìn)程隊(duì)列調(diào)度模型進(jìn)程調(diào)度進(jìn)程調(diào)度的過(guò)程包括:1.保存處理機(jī)的現(xiàn)場(chǎng)信息。2.按某種方式選取進(jìn)程(非搶占方式和搶占方式)。3.分派程序把處理機(jī)分配給該進(jìn)程。如果采取非搶占方式,當(dāng)把處理機(jī)分配給某個(gè)進(jìn)程后,不管它要運(yùn)行多長(zhǎng)時(shí)間,都一直讓它運(yùn)行,直至該進(jìn)程完成,自愿釋放處理機(jī),或發(fā)生某事件而被阻塞時(shí),才把處理機(jī)分配給其他進(jìn)程。如果采取搶占方式,調(diào)度程序可根據(jù)某種原則去暫停某個(gè)正在執(zhí)行的進(jìn)程,將已分配給該進(jìn)程的處理機(jī)重新分配給另一進(jìn)程。這樣的原則主要包括優(yōu)先權(quán)原則,短進(jìn)程優(yōu)先原則,時(shí)間片原則,具體內(nèi)容如下:優(yōu)先權(quán)原則:對(duì)不同的進(jìn)程賦予不同的優(yōu)先級(jí),當(dāng)優(yōu)先級(jí)高的進(jìn)程到達(dá)時(shí),便暫停當(dāng)前正在執(zhí)行的進(jìn)程,將處理機(jī)分配給優(yōu)先級(jí)高的進(jìn)程。短進(jìn)程優(yōu)先原則:當(dāng)新到達(dá)的進(jìn)程比正在執(zhí)行的進(jìn)程明顯短時(shí),將暫停當(dāng)前進(jìn)程的執(zhí)行,把處理機(jī)分配給新的短進(jìn)程。時(shí)間片原則:各進(jìn)程按時(shí)間片輪流運(yùn)行,當(dāng)一個(gè)時(shí)間片用完后,便停止該進(jìn)程的執(zhí)行而重新進(jìn)行調(diào)度。線程調(diào)度假設(shè)CPU為3核CPU,操作系統(tǒng)采用搶占式的時(shí)間片原則進(jìn)行線程調(diào)度。線程調(diào)度例A學(xué)校委托B軟件公司開(kāi)發(fā)一個(gè)學(xué)籍管理系統(tǒng)來(lái)管理學(xué)生的成績(jī),需要解決以下問(wèn)題。假設(shè)線程A1,A2,B1在時(shí)間片用完后沒(méi)有執(zhí)行完。再次調(diào)度,進(jìn)行線程切換。線程A1,A2,B1放棄CPU并被加入就緒隊(duì)列尾部,線程B2,B3,B4獲得CPU資源并開(kāi)始執(zhí)行。文件系統(tǒng)操作系統(tǒng)中負(fù)責(zé)管理和存儲(chǔ)文件信息的軟件稱為文件管理系統(tǒng),簡(jiǎn)稱文件系統(tǒng)(FileSystem)。文件系統(tǒng)包括操作系統(tǒng)用于明確存儲(chǔ)設(shè)備上文件的方法和數(shù)據(jù)結(jié)構(gòu),此處的方法即在存儲(chǔ)設(shè)備上組織文件的方法。這里的文件泛指保存在存儲(chǔ)設(shè)備上的所有數(shù)據(jù),而不單單指文檔。存儲(chǔ)設(shè)備常見(jiàn)的是磁盤(pán),也有基于NANDFlash的固態(tài)硬盤(pán)。文件系統(tǒng)信息世界數(shù)據(jù)世界未來(lái)計(jì)算機(jī)2.3PART未來(lái)計(jì)算機(jī)(a)微軟,蘇格蘭奧克尼群島海岸線附近水域(b)Google,芬蘭,哈米納海灣(c)騰訊,貴州省貴州新區(qū),占地約770畝(d)Facebook,瑞典,離北極圈僅100公里各互聯(lián)網(wǎng)公司部署服務(wù)器地址圖未來(lái)計(jì)算機(jī)某校有多名學(xué)生,開(kāi)設(shè)多門(mén)課程;一名學(xué)生可學(xué)習(xí)多門(mén)課程;一門(mén)課程可有多名學(xué)生學(xué)習(xí);設(shè)計(jì)一個(gè)學(xué)生選課系統(tǒng),對(duì)學(xué)生選課進(jìn)行管理學(xué)生信息包括:學(xué)號(hào)、姓名、性別、籍貫等課程信息包括:課程號(hào)、課程名稱、學(xué)時(shí)等學(xué)生修課的成績(jī)計(jì)算機(jī)的未來(lái)發(fā)展方向:微型化。要利用微電子技術(shù)和超大規(guī)模集成電路技術(shù),把計(jì)算機(jī)的體積進(jìn)一步縮小。當(dāng)計(jì)算機(jī)體積縮小以后,會(huì)影響它的計(jì)算速度嗎?這個(gè)問(wèn)題是否定的——科技的發(fā)展將使電腦芯片變得更小、傳輸速度更快、耗電量更少。就像我們使用的手機(jī)、iPad、智能手表,雖然體積很小,但是并不影響他們的計(jì)算速度。巨型化。這個(gè)巨型并不是指體積,而是指速度、存儲(chǔ)量和計(jì)算機(jī)功能。如超級(jí)計(jì)算機(jī)、量子計(jì)算機(jī)、光子計(jì)算機(jī)、納米計(jì)算機(jī)等,這類(lèi)計(jì)算機(jī)將主要應(yīng)用于天文、氣象、地質(zhì)、核技術(shù)、航天和衛(wèi)星軌道計(jì)算等尖端科學(xué)技術(shù)領(lǐng)域,以提供計(jì)算支持。網(wǎng)絡(luò)化。計(jì)算機(jī)的發(fā)展也離不開(kāi)互聯(lián)網(wǎng)的發(fā)展。借助網(wǎng)絡(luò)技術(shù)可以更好地分享網(wǎng)上的信息,在這個(gè)動(dòng)態(tài)變化的網(wǎng)絡(luò)環(huán)境中,實(shí)現(xiàn)計(jì)算資源、知識(shí)資源、專(zhuān)家資源的共享,從而讓用戶享受可靈活控制的、智能的、協(xié)作式的信息服務(wù)。智能化。隨著科技的發(fā)展,機(jī)器完全有可能具有模擬人的感覺(jué)、思維、情感等能力,實(shí)現(xiàn)“強(qiáng)人工智能”。但是,在發(fā)展人工智能的同時(shí),社會(huì)需要用法律去約束人工智能,使人工智能向著積極正確的方向發(fā)展,造福于人類(lèi)。未來(lái)計(jì)算機(jī)國(guó)家超級(jí)計(jì)算中心:國(guó)家超級(jí)計(jì)算中心是由國(guó)家科技部批準(zhǔn)成立的數(shù)據(jù)計(jì)算機(jī)構(gòu),是科技部下屬事業(yè)單位。截至2020年,科技部批準(zhǔn)建立的國(guó)家超級(jí)計(jì)算中心共有八所,分別是國(guó)家超級(jí)計(jì)算天津中心、國(guó)家超級(jí)計(jì)算廣州中心、國(guó)家超級(jí)計(jì)算深圳中心、國(guó)家超級(jí)計(jì)算長(zhǎng)沙中心、國(guó)家超級(jí)計(jì)算濟(jì)南中心、國(guó)家超級(jí)計(jì)算無(wú)錫中心、國(guó)家超級(jí)計(jì)算鄭州中心、國(guó)家超級(jí)計(jì)算昆山中心。(a)國(guó)家超級(jí)計(jì)算長(zhǎng)沙中心(b)國(guó)家超級(jí)計(jì)算天津中心未來(lái)計(jì)算機(jī)中國(guó)有三大超級(jí)計(jì)算機(jī)研制單位:曙光、天河、神威。天河三號(hào)超級(jí)計(jì)算機(jī)原型機(jī)在核心芯片上做到了自主、獨(dú)立、創(chuàng)新,真正實(shí)現(xiàn)了“超算”的全國(guó)產(chǎn)。我國(guó)在這個(gè)領(lǐng)域已經(jīng)實(shí)現(xiàn)了全球領(lǐng)先。此前中國(guó)在超級(jí)計(jì)算機(jī)領(lǐng)域相對(duì)于其他發(fā)達(dá)國(guó)家來(lái)說(shuō)是稍遜一籌的,從1987年中國(guó)開(kāi)始研發(fā)超級(jí)計(jì)算機(jī),到現(xiàn)在中國(guó)已經(jīng)突破了“超算”領(lǐng)域的核心技術(shù)封鎖,中國(guó)超級(jí)計(jì)算機(jī)的更多突破未來(lái)可期。未來(lái)計(jì)算機(jī)2020年12月4日,中國(guó)量子計(jì)算機(jī)原型機(jī)“九章”問(wèn)世,如圖2.43所示。其算力實(shí)現(xiàn)全球領(lǐng)先,中國(guó)成為世界上第二個(gè)實(shí)現(xiàn)“量子優(yōu)越性”的國(guó)家。量子計(jì)算原型機(jī)“九章”由中國(guó)科學(xué)技術(shù)大學(xué)潘建偉等人構(gòu)建,國(guó)際學(xué)術(shù)期刊《科學(xué)》發(fā)表了這一成果,并稱這是“世界上最先進(jìn)的實(shí)驗(yàn)”和“一個(gè)重大成就”?!熬耪隆绷孔佑?jì)算機(jī)未來(lái)計(jì)算機(jī)隨著計(jì)算機(jī)的不斷發(fā)展,人類(lèi)生產(chǎn)生活的數(shù)據(jù)和信息環(huán)境有了大幅提升,人工智能正從學(xué)術(shù)驅(qū)動(dòng)轉(zhuǎn)變?yōu)閼?yīng)用驅(qū)動(dòng),從專(zhuān)用智能邁向通用智能,人類(lèi)社會(huì)與物理世界的二元結(jié)構(gòu)正在進(jìn)階到人類(lèi)社會(huì)、信息空間和物理世界的三元結(jié)構(gòu),人與人、機(jī)器與機(jī)器、人與機(jī)器的交流互動(dòng)越來(lái)越頻繁。而海量化的基礎(chǔ)數(shù)據(jù)、持續(xù)提升的運(yùn)算能力、不斷優(yōu)化的算法模型,結(jié)合多種應(yīng)用場(chǎng)景的新應(yīng)用已構(gòu)成相對(duì)完整的閉環(huán),成為推動(dòng)新一代人工智能發(fā)展的三大要素Q&A謝謝!計(jì)算與人工智能概論第3章Python編程基礎(chǔ)
python編程基礎(chǔ)-問(wèn)題求解的計(jì)算思維方法1PART3.1問(wèn)題求解的計(jì)算思維方法3.1.1問(wèn)題分解針對(duì)機(jī)器人投籃問(wèn)題,首先,設(shè)定一個(gè)模擬籃球場(chǎng)的場(chǎng)景;然后,機(jī)器人要實(shí)現(xiàn)投籃百發(fā)百中,可以劃分為3個(gè)子問(wèn)題,如表3.1所示。第1個(gè)問(wèn)題是投籃機(jī)器人對(duì)模擬籃球場(chǎng)的“記憶”;第2個(gè)問(wèn)題是探索機(jī)器人在不同情況下投籃所得到的軌跡線,第3個(gè)問(wèn)題是完成拋球的動(dòng)作。3.1.2模式識(shí)別籃球運(yùn)動(dòng)員在球?qū)τ谕痘@機(jī)器人而言,可以通過(guò)計(jì)算機(jī)模擬籃球軌跡建立坐標(biāo)系,先計(jì)算籃球投出后某一時(shí)間的坐標(biāo)點(diǎn),再循環(huán)計(jì)算籃球在空中多個(gè)坐標(biāo)點(diǎn)的位置,最后計(jì)算不同初始條件下籃球軌跡坐標(biāo)點(diǎn),進(jìn)而找出合適的投籃角度或籃球出手速度以實(shí)現(xiàn)機(jī)器人百分百投籃,如表3.2所示。
3.1.3抽象利用計(jì)算機(jī)模擬投籃過(guò)程,首先需要建立坐標(biāo)系模擬機(jī)器人投籃場(chǎng)景,x軸代表籃球水平方向的坐標(biāo),y軸代表籃球垂直方向的坐標(biāo),如圖3.1(a)所示;其次,機(jī)器人投籃軌跡線可通過(guò)在坐標(biāo)系上繪制一條拋物線來(lái)模擬,如圖3.1(b)所示。圖3.2繪制了在不同條件下機(jī)器人投籃的籃球運(yùn)動(dòng)軌跡。3.1.4算法設(shè)計(jì)第1步:建立一個(gè)二維的坐標(biāo)系,并計(jì)算籃球在某一時(shí)間的坐標(biāo)點(diǎn).第2步:在合理的范圍內(nèi)繪制籃球的一個(gè)坐標(biāo)點(diǎn),如圖3.1(a)所示。第3步:在合理的范圍內(nèi)繪制籃球的n個(gè)坐標(biāo)點(diǎn),如圖3.1(b)所示。第4步:繪制多次機(jī)器人投籃的籃球運(yùn)動(dòng)軌跡,如圖3.2所示。第5步:在投籃出手速度與出手高度一定的條件下,找出合適的角度,解決機(jī)器人百分百投籃問(wèn)題,如圖3.3所示。
python編程基礎(chǔ)-基本語(yǔ)法2PART3.2編程的基本概念3.2.1程序=算法+數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)存儲(chǔ)、組織數(shù)據(jù)的方式。數(shù)據(jù)結(jié)構(gòu)是指相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。程序設(shè)計(jì)中常用的數(shù)據(jù)結(jié)構(gòu)包括數(shù)組(Array)、棧(Stack)、隊(duì)列(Queue)、鏈表(LinkedList)、樹(shù)(Tree)和圖(Graph)等。Python常用的數(shù)據(jù)結(jié)構(gòu)包括列表、元組、字典與集合等。算法是為解決問(wèn)題而精心設(shè)計(jì)的計(jì)算步驟和方法。它代表著用系統(tǒng)的方法描述解決問(wèn)題的策略機(jī)制。也就是說(shuō),能夠?qū)σ欢ㄒ?guī)范的輸入,在有限時(shí)間內(nèi)獲得所要求的輸出。不同的算法可能用不同的時(shí)間、空間或效率來(lái)完成同樣的任務(wù)。一個(gè)算法的優(yōu)劣可以用空間復(fù)雜度與時(shí)間復(fù)雜度來(lái)衡量。3.2.2
Python簡(jiǎn)介Python安裝Python的兩個(gè)主要版本2.7和3.8如何安裝?Anaconda
Anaconda
是一個(gè)包含數(shù)據(jù)科學(xué)常用包的Python發(fā)行版本。它基于conda——一個(gè)包和環(huán)境管理器——衍生而來(lái)。你將使用conda創(chuàng)建環(huán)境,以便分隔使用不同Python版本和不同程序包的項(xiàng)目。你還將使用它在環(huán)境中安裝、卸載和更新包。通過(guò)使用Anaconda,處理數(shù)據(jù)的過(guò)程將更加愉快。下載地址:/distribution/
在哪寫(xiě)代碼?SpyderIDLE/Jupter/pycharmVisualstudiocode113Spyder的使用:/tools/spyder開(kāi)始→所有程序→Anaconda3→Spyder①
新建②編程③
運(yùn)行(和保存)④運(yùn)行結(jié)果1143.2.3第一個(gè)python程序--計(jì)算一個(gè)坐標(biāo)點(diǎn)的值并輸出根據(jù)公式計(jì)算坐標(biāo)點(diǎn)math庫(kù)是Python提供的內(nèi)置數(shù)學(xué)類(lèi)函數(shù)庫(kù)math庫(kù)不支持復(fù)數(shù)類(lèi)型,一共提供了4個(gè)數(shù)學(xué)常數(shù)和44個(gè)函數(shù)。第一種:importmath對(duì)math庫(kù)中函數(shù)采用math.<b>()形式使用第二種,frommathimport<函數(shù)名>對(duì)math庫(kù)中函數(shù)可以直接采用<函數(shù)名>()形式使用第三種,frommathimport*對(duì)math庫(kù)中函數(shù)可以直接使用1、import導(dǎo)入math庫(kù)3.2.4
Python基本語(yǔ)法2、print()函數(shù)3、變量的賦值與變量類(lèi)型name='千尋'
name='馬沖’print(name)變量:其值可以改變的量。<變量>=<表達(dá)式>命名原則:見(jiàn)名知義盡量不要給變量命名為a、b、c等英文字母,類(lèi)似于名字=張小明,小紅,無(wú)法知義變量類(lèi)型-字符型字符串:英文string,簡(jiǎn)寫(xiě)str字符串,顧名思義,就是由一個(gè)個(gè)字符串起來(lái)的組合,字符可以是一個(gè)數(shù)字、一個(gè)字母、一個(gè)文字,甚至是一個(gè)符號(hào)。字符串可以表達(dá)現(xiàn)實(shí)世界里的詞、語(yǔ)句、表達(dá)式等
整數(shù)類(lèi)型:整數(shù)英文為integer,簡(jiǎn)寫(xiě)做int。Python的整數(shù)和現(xiàn)實(shí)世界數(shù)學(xué)中定義的一樣:是正整數(shù)、負(fù)整數(shù)和零的統(tǒng)稱,是沒(méi)有小數(shù)點(diǎn)的數(shù)字。整數(shù)類(lèi)型:二進(jìn)制:0b101、0B101,八進(jìn)制:0o123,0O234,十六進(jìn)制:0x123,0X234浮點(diǎn)數(shù)型:浮點(diǎn)數(shù)英文為float計(jì)算機(jī)里浮點(diǎn)數(shù)的運(yùn)算是不精確的,會(huì)有四舍五入的誤差浮點(diǎn)數(shù)類(lèi)型:普通表示法:1.23科學(xué)及算法:復(fù)數(shù)類(lèi)型:z=a+bjz.real實(shí)部,z.imag虛部數(shù)據(jù)變量類(lèi)型-數(shù)值類(lèi)型4、運(yùn)算符與表達(dá)式怎么計(jì)算表達(dá)式?算術(shù)運(yùn)算符:a=10,b=21表達(dá)式的表示:求一元二次方程的根y=ax2+bx+c?運(yùn)算符描述實(shí)例+加-兩個(gè)對(duì)象相加a+b輸出結(jié)果31-減-得到負(fù)數(shù)或是一個(gè)數(shù)減去另一個(gè)數(shù)a-b輸出結(jié)果-11*乘-兩個(gè)數(shù)相乘或是返回一個(gè)被重復(fù)若干次的字符串a(chǎn)*b輸出結(jié)果210/除-x除以yb/a輸出結(jié)果2.1%取模-返回除法的余數(shù)b%a輸出結(jié)果1**冪-返回x的y次冪a**b為10的21次方//取整除-向下取接近商的整數(shù)9//2=4-9//2=-5print((60-4)**2-55/5)的計(jì)算順序如何?print(0.55+0.3)的結(jié)果是???試一試:5、input()函數(shù)<變量>=input(<提示性文字>)
獲得用戶輸入之前,input()函數(shù)可以包含一些提示性文字,但不管用戶輸入字符或數(shù)字,input()函數(shù)統(tǒng)一按照字符串類(lèi)型返回結(jié)果122input函數(shù)作用:從鍵盤(pán)讀入一個(gè)字符串試一試:請(qǐng)從鍵盤(pán)給h,v0,g,
θ賦值完成:h,v0,g,θ=1.9,14,9.8,40name=input('請(qǐng)輸入你的姓名:')print('你的名字叫:',name)1233.2.5計(jì)算并繪制坐標(biāo)點(diǎn)案例拓展訓(xùn)練python編程基礎(chǔ)-模塊化編程函數(shù)3PART3.3.1常用的內(nèi)置函數(shù)內(nèi)置函數(shù)的使用
函數(shù)名()形式參數(shù),即在函數(shù)體中所使用的變量函數(shù)結(jié)果的輸出并返回函數(shù)體數(shù)學(xué)上的函數(shù)只是一個(gè)符號(hào)表達(dá),而計(jì)算機(jī)程序中的函數(shù)則是一段可以執(zhí)行的程序函數(shù)調(diào)用,實(shí)參10傳給形參C3.3.2自定義計(jì)算坐標(biāo)的函數(shù)自定義函數(shù):def函數(shù)名():語(yǔ)句1……語(yǔ)句nreturn語(yǔ)句函數(shù)體自定義計(jì)算坐標(biāo)函數(shù)3.3.3調(diào)用函數(shù)繪制坐標(biāo)點(diǎn)3.3.4函數(shù)的參數(shù)1.形參與實(shí)參函數(shù)的參數(shù)有形式參數(shù)與實(shí)隙地參數(shù)。定義函數(shù)時(shí)函數(shù)頭中所包含的參數(shù)為形式參數(shù)(簡(jiǎn)稱形參),而調(diào)用函數(shù)時(shí)使用的參數(shù)是實(shí)際參數(shù)(簡(jiǎn)稱實(shí)參)。在定義函數(shù)時(shí),形參類(lèi)似于占位符,其不是擁有具體值的變量。只有在調(diào)用函數(shù)時(shí),調(diào)用者將實(shí)參的值傳遞給形參,形參才擁有具體值。一般情況下,形參與實(shí)參的數(shù)量要相同,對(duì)應(yīng)位置要一致,這樣才能正確地傳遞參數(shù)。Python對(duì)象按內(nèi)容來(lái)說(shuō)可分為不可變與可變對(duì)象,不可變對(duì)象包括數(shù)字、字符串和元組,而可變對(duì)象包括列表與字典。Python參數(shù)傳遞采用的是“傳對(duì)象引用”方式,即傳遞參數(shù)時(shí),如果參數(shù)是可變對(duì)象,則函數(shù)內(nèi)部的修改會(huì)影響到函數(shù)外部的實(shí)參;如果參數(shù)是不可變對(duì)象,則函數(shù)內(nèi)部的修改不會(huì)影響到函數(shù)外部的實(shí)參。2.默認(rèn)參數(shù)、位置參數(shù)、關(guān)鍵字參數(shù)和可變參數(shù)importnumpyasnpdefsolve(a,b,c=5):d=np.sqrt(b**2-4*a*c)x1,x2=(-b+d)/(2*a),(-b-d)/(2*a)returnx1,x2a,b,c=1,0,-1x1,x2=solve(a,b)#默認(rèn)第三個(gè)參數(shù)為5 print('x1=%f,x2=%f'%(x1,x2))默認(rèn)參數(shù):放在所有參數(shù)的后面關(guān)鍵字參數(shù)
importnumpyasnpdefsolve(a,b,c=5):d=np.sqrt(b**2-4*a*c)x1,x2=(-b+d)/(2*a),(-b-d)/(2*a)returnx1,x2#a,b,c=1,0,-1x1,x2=solve(c=-1,b=0,a=1)#關(guān)鍵字參數(shù)
print('x1=%f,x2=%f'%(x1,x2))默認(rèn)參數(shù):放在所有參數(shù)的后面在定義函數(shù)時(shí),在參數(shù)前面加*號(hào),表示可以接收多個(gè)位置參數(shù)并把它們放到一個(gè)元組中??蛇x參數(shù)和可變參數(shù)
在形參前面加兩個(gè)星號(hào)**,表示可以接受多個(gè)關(guān)鍵參數(shù)并把它們放入一個(gè)字典中。3.3.5函數(shù)返回函數(shù)返回是指返回函數(shù)的結(jié)果。與其他程序設(shè)計(jì)語(yǔ)言不同,Python支持函數(shù)返回0個(gè)到多個(gè)值。return返回多個(gè)值則以元組的方式保存案例拓展訓(xùn)練python編程基礎(chǔ)-分支4PART1383.4.1單分支——if語(yǔ)句if分支1393.4.2二分支——if-else語(yǔ)句if-else分支若滿足條件表達(dá)式則執(zhí)行語(yǔ)句1~語(yǔ)句n,否則執(zhí)行語(yǔ)句n+1~語(yǔ)句n+mif條件表達(dá)式:語(yǔ)句1……語(yǔ)句nelse:語(yǔ)句n+1……語(yǔ)句n+m注意:ifelse所代表的條件是互斥的else部分有時(shí)可以省略140比較運(yùn)算符(最常用),結(jié)果為T(mén)rue
或False>
:大于,如x>0<
:小于,如x<0>=
:大于等于,如x>=0<=
:小于等于,如x<=0==
:等于,如x==0!=
:不等于,如x!=0141條件運(yùn)算符的使用,結(jié)果為T(mén)rue
或Falseand:與(而且)例:"a>-1anda<1"表示"a>-1且a<1"注:"a>-1anda<1"也可寫(xiě)成"-1<a<1"or:或(或者)例:"a>1ora<-1"表示"a>1或a<-1"not:非(不是)例:"nota>1"表示"a不大于1"142計(jì)算x的絕對(duì)值習(xí)題流程圖x>0?a=x是a=-x否輸入x開(kāi)始打印a結(jié)束x=eval(input('x='))ifx>0:a=xelse:a=-xprint('|x|=',a)3.4.3多分支——if-elif-else語(yǔ)句144例:
分段函數(shù):
x=eval(input(‘x='))ifx<0:y=-1elifx==0:y=0else:y=1print(y)
規(guī)則嵌套例:求三個(gè)數(shù)的最大值的#求三個(gè)數(shù)的最大值1x,y,z=eval(input("enter3data:"))ifx>y:max_2=xelse:max_2=yifmax_2>z:max_3=max_2else:max_3=zprint(max_3)
#求三個(gè)數(shù)的最大值2:換一種方式x,y,z=eval(input("enter3data:"))max_2=xifx>yelsey#分支的緊湊格式max_3=max_2ifmax_2>zelsezprint(max_3)x=eval(input(‘x='))ifx<=0:ifx<0:
y=-1else:y=0else:y=1print(y)不規(guī)則嵌套3.4.4智能型計(jì)算坐標(biāo)函數(shù)3.4.5在合理范圍內(nèi)繪制坐標(biāo)點(diǎn)案例拓展訓(xùn)練編程基礎(chǔ)-循環(huán)5PART1503.5.1while循環(huán)while循環(huán)(條件循環(huán))重復(fù)執(zhí)行語(yǔ)句1~語(yǔ)句n,直到條件表達(dá)式不再成立while條件表達(dá)式:語(yǔ)句1……語(yǔ)句n條件表達(dá)式與if中的規(guī)定相同循環(huán)體151例:依次打印1~100,最后打印'end'i=1whilei<=100:print(i)i=i+1print('end')12……100end152計(jì)算1+3+5+…+997+999習(xí)題=250000i=1s=0whilei<1000:ifi%2==1:s=s+ii=i+1print(s)i=1s=0whilei<1000:s=s+ii=i+2print(s)或3.5.2在合理范圍內(nèi)繪制多個(gè)坐標(biāo)點(diǎn)循環(huán)中的(break,continue,else,pass)1、break/continue語(yǔ)句
if...break/continue的意思是如果滿足了某一個(gè)條件,就提前結(jié)束/(本次)循環(huán)。#請(qǐng)運(yùn)行代碼體驗(yàn)效果foriinrange(5):print('明日復(fù)明日')ifi==3:#當(dāng)i等于3的時(shí)候觸發(fā)
break#結(jié)束循環(huán)#請(qǐng)運(yùn)行代碼體驗(yàn)效果i=0whilei<5:print('明日復(fù)明日')i=i+1ifi==3:#當(dāng)i等于3的時(shí)候觸發(fā)
break#結(jié)束循環(huán)1553.5.3循環(huán)嵌套循環(huán)嵌套(二重循環(huán),多重循環(huán))
1563.5.4在合理范圍內(nèi)繪制多條軌跡線(二重循環(huán)的函數(shù)調(diào)用方式)案例拓展訓(xùn)練案例拓展訓(xùn)練Q&A謝謝!計(jì)算與人工智能概論第4章python編程進(jìn)階
python編程進(jìn)階-列表1PART序列數(shù)據(jù)--列表列表(list)和元組(tuple)按順序保存元素,通過(guò)索引(index)來(lái)訪問(wèn)所有的元素,它們的區(qū)別在于:列表是可以修改的,而元組是不可修改的。list1=[1,2,"C語(yǔ)言","Python","Java"]tuple1=('Python','Java','C++','JavaScript')#元組是不可變數(shù)據(jù)類(lèi)型
4.1.1用列表存儲(chǔ)多條軌跡線的坐標(biāo)點(diǎn)1654.1.2列表的基本概念列表(List)包含若干元素,用[]表示元素是按序編號(hào)的(從[0~n-1],或者[-n~-1])利用編號(hào)可對(duì)元素進(jìn)行增刪改查等操作例如:Ls=["Python",1,3.0,[2,3,4],(1,2,3)]表示有5個(gè)元素的列表,元素可以是字符串,數(shù)字,列表和元組,可以通過(guò)下標(biāo)對(duì)列表元素進(jìn)行訪問(wèn)。167for循環(huán)(遍歷循環(huán))重復(fù)執(zhí)行語(yǔ)句1~語(yǔ)句n,直到遍歷結(jié)束退出循環(huán)for循環(huán)變量in遍歷對(duì)象:語(yǔ)句1……語(yǔ)句n循環(huán)體168例:for與range()函數(shù)的應(yīng)用
例:for循環(huán)遍歷列表4.1.3列表的基本操作假設(shè):ls=['helloword’]假設(shè):lst=[101,25,38,29]170列表推導(dǎo)式
L=[包含x的表達(dá)式forxin序列if條件表達(dá)式]列表推導(dǎo)式在邏輯上等價(jià)于一個(gè)循環(huán)語(yǔ)句,只是形式上更簡(jiǎn)潔。示例如下。lst1=[x*xforxinrange(20)ifx%2==1]上述語(yǔ)句等價(jià)于如下程序。lst1=[]forxinrange(20):ifx%2==1:lst1.append(x*x)列表、range()等用函數(shù)調(diào)用列表實(shí)現(xiàn)繪制多條線
4.1.4用列表實(shí)現(xiàn)繪制多條線列表案例拓展訓(xùn)練
python編程進(jìn)階-字典2PART字典{dict}&&集合set集合(set)是一個(gè)無(wú)序的不重復(fù)元素序列。可以使用大括號(hào)
{}
或者
set()
函數(shù)創(chuàng)建集合例如:basket
=
{'apple',
'orange',
'apple',
'pear',
'orange',
'banana’}print(basket)#{‘orange’,
‘banana’,
‘pear’,
‘a(chǎn)pple’}去掉重復(fù)元素關(guān)于集合的內(nèi)容可參閱:/python3/python3-set.html
字典是另一種可變映射數(shù)據(jù)容器,可存儲(chǔ)任意類(lèi)型對(duì)象。鍵值對(duì)的方式存放在一對(duì){}中,每個(gè)鍵值
key:value
,用逗號(hào)(,)分割。例如:dict1={'name':'HunanUniversity','url':'/','create_time':1903}關(guān)于字典的內(nèi)容可參閱:/python3/python3-dictionary.html
在myMath.py中增加函數(shù)calCoordinateSmart3(g,h,v0,thetadegree,t0,t1),產(chǎn)生指定時(shí)間內(nèi)的所有正常的坐標(biāo)點(diǎn)。4.2.1用字典存儲(chǔ)多條軌跡線的坐標(biāo)點(diǎn)字典:{鍵值對(duì)(key-value)}
4.2.2字典的基本概念字典為無(wú)序可變序列,鍵為索引關(guān)鍵字,具有唯一性,值可重復(fù)。鍵必須是不可變的,如字符串,數(shù)字和元組;值可取任何數(shù)據(jù)類(lèi)型。#訪問(wèn)格式:dictname[key]tup=(['two',26],['one',88],['three',100],['four',-59])#元組dic=dict(tup)#轉(zhuǎn)換成字典print(dic['one'])#鍵存在print(dic['five'])#鍵不存在,報(bào)錯(cuò)#get()方法訪問(wèn)#訪問(wèn)格式:dictname.get(key[,default])a=dict(two=0.65,one=88,three=100,four=-59)#字符鍵不需要加引號(hào)print(a.get('one'))#88,當(dāng)鍵不存在時(shí)返回Nonea=dict(two=0.65,one=88,three=100,four=-59)print(a.get('five','該鍵不存在'))#當(dāng)鍵不存在時(shí)返回'該鍵不存在
'4.2.3字典元素的訪問(wèn)通過(guò)字典方法訪問(wèn)字典的鍵值對(duì)>>>dir(dict)['clear','copy','fromkeys','get','items','keys','pop','popitem','setdefault','update','values']keys()方法用于返回字典中的所有鍵(key)values()方法用于返回字典中所有鍵對(duì)應(yīng)的值(value)items()用于返回字典中所有的鍵值對(duì)(key-value)scores={'數(shù)學(xué)':95,'語(yǔ)文':89,'英語(yǔ)':90}print(scores.keys())#dict_keys(['數(shù)學(xué)','語(yǔ)文','英語(yǔ)'])print(scores.values())#dict_values([95,89,90])print(scores.items())#dict_items([('數(shù)學(xué)',95),('語(yǔ)文',89),('英語(yǔ)',90)])
4.2.4字典的基本操作#和列表、元組一樣,刪除字典也可以使用del關(guān)鍵字a=dict(two=0.65,one=88,three=100,four=-59)print(a)delaprint(a)#使用del語(yǔ)句刪除鍵值對(duì)a={'數(shù)學(xué)':95,'語(yǔ)文':89,'英語(yǔ)':90}dela['語(yǔ)文']dela['數(shù)學(xué)']print(a)#判斷字典里是否有指定的鍵值對(duì)a={'數(shù)學(xué)':95,'語(yǔ)文':89,'英語(yǔ)':90}#判斷a中是否包含名為'數(shù)學(xué)'的keyprint('數(shù)學(xué)'ina)#True#a是否包含名為'物理'的keyprint('物理'ina)#False#添加格式:dictname[key]=valuea={'數(shù)學(xué)':95}#添加新鍵值對(duì)a['語(yǔ)文']=89print(a)#再次添加新鍵值對(duì)a['英語(yǔ)']=90print(a)#修改鍵對(duì)應(yīng)的值,鍵不能被修改a={'數(shù)學(xué)':95,'語(yǔ)文':89,'英語(yǔ)':90}print(a)a['語(yǔ)文']=100print(a)4.2.5字典的嵌套#1字典嵌套列表class1={'names':['張三','李四','王五'],'scores':[95,98,75]}print(class1['names’][2])print(class1['scores'][1])#2列表中嵌套字典class1=[{'name':'張三','score':95},{'name':'李四','score':98},{'name':'王五','score':75}]print(class1[0])print(class1[2]['name'])#3字典嵌套字典class3={"001":{'name':'張三','score':95},"002":{'name':'李四','score':98},"003":{'name':'王五','score':75}}print(class3['001’]) #{'name':'張三','score':95}print(class3["001"]["name"])#張三print(class3["001"]["score"])#95
4.2.6用字典實(shí)現(xiàn)繪制多條線字典案例拓展訓(xùn)練
python編程進(jìn)階-文件3PART4.3.1文件的基本概念1、文件的表示
文件名由主文件名和擴(kuò)展名兩部分組成,例如:文件myMath.py,文件名為myMath,擴(kuò)展名為py
2.文件與目錄
相對(duì)路徑與絕對(duì)路徑#絕對(duì)路徑演示假設(shè)文件myMath.py保存在C盤(pán)User目錄的子目錄hzh下,則包含絕對(duì)路徑下文件名由磁盤(pán)驅(qū)動(dòng)器、目錄層次和文件名三部分組成,即C:\User\hzh\myMath.py,在Python中表示為:“C:\\User\\hzh\\myMath.py"或“C:/User/hzh/myMath.py”#相對(duì)路徑演示假設(shè)文件myMath.py保存在C盤(pán)User目錄的子目錄hzh下,源文件保存在C盤(pán)User目錄下,則包含相對(duì)路徑的文件名為hzh\myMath.py,在Python中表示為:“hzh\\myMath.py”或“hzh/myMath.py”3.文件編碼#文本與UTF-8編碼之間的轉(zhuǎn)換示例s1='你好嗎'print(s1.encode('utf-8'))#輸出為b'\xe6\x88\x91\xe7\x88\xb1\xe4\xbd\xa0's2=s1.encode('utf-8')print(s2.decode())#輸出為你好嗎4.文件類(lèi)型按照文件的編碼方式,可以將文件分為文本文件(TextFile)和二進(jìn)制文件(BinaryFile)。
文本文件是基于字符編碼的文件,保存的是文本數(shù)據(jù),這些文本采用一定的編碼。在用記事本等軟件保存文本文件時(shí),通常需要指定編碼方式(或用默認(rèn)編碼方式)。漢字文件有時(shí)打開(kāi)是亂碼,往往就是因?yàn)榫幋a方式選擇不當(dāng)。文本文件由字符組成,可以看成是一個(gè)很長(zhǎng)的字符串。二進(jìn)制文件是基于值編碼的文件,存儲(chǔ)的是二進(jìn)制數(shù)據(jù),也就是說(shuō),數(shù)據(jù)按照其實(shí)際占用的字節(jié)數(shù)來(lái)存儲(chǔ)的。二進(jìn)制文件不是以字符為單位的,不能看成字符串,而是被當(dāng)作特定格式的字節(jié)流來(lái)處理的。4.3.2常用文件操作打開(kāi)文本文件:f
=open(file,mode='r',encoding=None)file:表示要打開(kāi)的文件路徑(相對(duì)或者絕對(duì)路徑);mode:表示文件打開(kāi)模式;encoding:用于設(shè)置編碼格式,一般使用utf-8;在Python中,為了防止文件打開(kāi)后忘記關(guān)閉,提供了with語(yǔ)句來(lái)使用文件:withopen(file,mode)as<文件對(duì)象名>:
語(yǔ)句塊關(guān)閉文本文件:f=close()打開(kāi)文本文件:mode參數(shù)的取值如下表所示:文件操作-讀和寫(xiě)文件的寫(xiě)入Python提供了2種方法寫(xiě)入文件。第一種方法:<文件對(duì)象名>.write([str])write()方法用于向文件中寫(xiě)入一個(gè)字符串或字節(jié)流。第二種方法:<文件對(duì)象名>.writelines([str])writelines()方法用于向文件中寫(xiě)入一個(gè)序列的字符串,如元素為字符串的列表。換行需要自己添加換行符“\n”。文件的讀寫(xiě)操作文件的讀寫(xiě)操作例1:建立文本文件test1.txt,并用write()和read()方式讀寫(xiě)取文件并輸出注意:文件的相對(duì)路徑與絕對(duì)路徑的概念與演示
文件的打開(kāi)方式a+,w+,w,r,r+test1.txt文件內(nèi)容:
test1.txt文件內(nèi)容:文件讀的寫(xiě)操作
例2:假設(shè)要實(shí)現(xiàn)統(tǒng)計(jì)score.txt文件中這5個(gè)學(xué)生的作業(yè)總得分,寫(xiě)入一個(gè)totalScore.txt文件中,并將統(tǒng)計(jì)后的總成績(jī)?cè)谄聊簧巷@示。設(shè)計(jì)思路:1、打開(kāi)score.txt文件,并讀出2、求每個(gè)學(xué)生的總成績(jī)3、寫(xiě)入totalScore.txt中4、讀出totalScore.txt在屏幕上顯示4.3.3用文件存儲(chǔ)多條軌跡線的坐標(biāo)點(diǎn)
1、JSON數(shù)據(jù)(數(shù)組和對(duì)象數(shù)據(jù))python數(shù)據(jù)(列表與字典)其中對(duì)象數(shù)據(jù)用大括號(hào)表示,由鍵值對(duì)組成,每個(gè)鍵值對(duì)用逗號(hào)隔開(kāi)。其中key必須為字符串且是雙引號(hào),value可以是多種數(shù)據(jù)類(lèi)型。例如:{"name":"Jack","address":"HuNanUniversity","scores":[75,85,90,60]}2、兩種數(shù)據(jù)之間的轉(zhuǎn)換可通過(guò)函數(shù)來(lái)實(shí)現(xiàn)python數(shù)據(jù)轉(zhuǎn)成json字符串:json_data=json.dumps(python_data)json字符串轉(zhuǎn)成python對(duì)象:python_data=json.loads(json_data)
#Python數(shù)據(jù)與JSON數(shù)據(jù)的轉(zhuǎn)換importjson #先導(dǎo)入json模塊Dict={'name':'Jack','address':'HuNanUniversity','scores':[75,85,90,60]}print(Dict) #顯示字典數(shù)據(jù)Json_Dict=json.dumps(Dict) #轉(zhuǎn)換成json數(shù)據(jù)print(Json_Dict) #顯示json數(shù)據(jù)Dictdata=json.loads(Json_Dict) #還原成字典數(shù)據(jù)print(Dictdata) #輸出還原后的字典數(shù)據(jù)3、Python操作JSON文件(1)用write()函數(shù)來(lái)實(shí)現(xiàn)json文件的寫(xiě),如我們將上面的字典數(shù)據(jù)存入data.json文件中withopen(“data.json”,“w”)asdata:data.wri
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 46373-2025壓縮空氣儲(chǔ)能電站接入電網(wǎng)技術(shù)規(guī)定
- GB/Z 18978.810-2025人-系統(tǒng)交互工效學(xué)第810部分:機(jī)器人、智能和自主系統(tǒng)
- GB/Z 145-2025標(biāo)準(zhǔn)化教育課程建設(shè)指南物流標(biāo)準(zhǔn)化
- 2026年廣西水利電力職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)及完整答案詳解1套
- 2026年山西國(guó)際商務(wù)職業(yè)學(xué)院?jiǎn)握新殬I(yè)傾向性考試題庫(kù)及答案詳解1套
- 2026年柳州城市職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)及參考答案詳解
- 2026年河北軟件職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)及參考答案詳解1套
- 2026年湖北職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能考試題庫(kù)及參考答案詳解1套
- 2026年巴中職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性考試題庫(kù)帶答案詳解
- 2026年鄭州亞歐交通職業(yè)學(xué)院中單招職業(yè)適應(yīng)性考試題庫(kù)含答案詳解
- 和解協(xié)議書(shū)限高模板
- 珍愛(ài)生命活在當(dāng)下-高一上學(xué)期生命教育主題班會(huì)課件
- 2025年統(tǒng)編版六年級(jí)上冊(cè)語(yǔ)文(寒假)期末復(fù)習(xí)《看拼音寫(xiě)詞語(yǔ)》專(zhuān)項(xiàng)訓(xùn)練A卷(附答案)
- 【課件】書(shū)畫(huà)同源+課件-2024-2025學(xué)年高中美術(shù)人教版+(2019)+選擇性必修2+中國(guó)書(shū)畫(huà)
- 松脂加工項(xiàng)目可行性研究報(bào)告完整立項(xiàng)報(bào)告
- 湖北省武漢市洪山區(qū)2023-2024學(xué)年八年級(jí)上學(xué)期期末數(shù)學(xué)試題
- 環(huán)衛(wèi)文明作業(yè)規(guī)范
- 應(yīng)用寫(xiě)作-終結(jié)性考核-國(guó)開(kāi)(SC)-參考資料
- DB41T 1960.2-2021 公共機(jī)構(gòu)能耗定額 第2部分:醫(yī)療機(jī)構(gòu)
- 場(chǎng)地租憑轉(zhuǎn)讓合同協(xié)議書(shū)
- 成人肥胖食養(yǎng)指南2024年版-國(guó)家衛(wèi)健委-202403
評(píng)論
0/150
提交評(píng)論