




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
流程圖中的抽象與建模查閱文獻(xiàn)資料,可以發(fā)現(xiàn)“計算思維”這一名詞時常和“抽象”“建?!钡让~有密切的聯(lián)系,或許相當(dāng)多的老師認(rèn)可這種說法:“運(yùn)用計算思維來解決問題的過程中可能涉及到抽象、建模等方法?!钡舴催^來說“當(dāng)解決某問題過程中用到了抽象、建模的方法,則體現(xiàn)出了計算思維的運(yùn)用”,這樣的觀點(diǎn)就很值得懷疑了。那么問題是,在什么樣的情況下,我們在解決問題的過程中用到了抽象、建模的方法,并且也能同時說,問題解決方案的產(chǎn)生運(yùn)用到了計算思維?●用數(shù)學(xué)模型模擬日常事件考慮現(xiàn)實(shí)中這樣一個常見的簡單問題:假設(shè)有三人通過舉手投票來做出某個決定(如決定是玩還是學(xué)習(xí)?),每人1票,當(dāng)多數(shù)人投贊成票,即有兩人或兩人以上舉手時,某決定(那就去玩吧?。┍煌ㄟ^。要求學(xué)生們設(shè)計一個算法:根據(jù)三人舉手投票情況,判斷某決定是否被通過。圖1是使用Raptor軟件制作的既可用于算法描述又可直接按流程執(zhí)行的流程圖。當(dāng)學(xué)生們學(xué)習(xí)了分支結(jié)構(gòu)的流程后,針對該任務(wù)所繪制出來的流程圖有不少與圖1類似。不妨在頭腦中想象一下投票的場景:如果您不是這三位投票者中的一位,那么您究竟是如何知道這項表決是否通過呢?如果投票人數(shù)非常多,或許就不得不去做加1計數(shù)的工作;然而,如果僅僅只有三位投票者,大部分人并不會真的去做加1的數(shù)學(xué)運(yùn)算,而只是簡單地看一下是否有兩位或三位舉手。這也說明,對于三人投票的場景,算法中的方法不一定如實(shí)地反映人頭腦中的方法,之所以大部分學(xué)生在算法中用到了數(shù)學(xué)上的加法,是因?yàn)樗麄儗⑵毡榈纳婕皵?shù)字、符號以及相關(guān)數(shù)學(xué)運(yùn)算的模型,很自然地應(yīng)用到了這一特定場景中。當(dāng)人們提到“抽象”的時候,一般是指從一組事物中抽取共相的過程。那么,通過數(shù)學(xué)加法結(jié)合不等式判斷來確定表決結(jié)果,與人頭腦通過直觀觀察來確定表決結(jié)果,兩者是否存在可抽取的共相?僅就三人投票的事件而言,如果共相存在,那應(yīng)該只是存在于系統(tǒng)(將人的頭腦和計算裝置都視作系統(tǒng))輸入值和輸出值的對應(yīng)關(guān)系上,也就是說,就表決過程的外在效果而言,現(xiàn)實(shí)場景和模擬場景這兩者的過程是一致的,但具體的內(nèi)在判斷過程卻是不同的。對整個事件輸入和輸出過程的模擬,借助數(shù)學(xué)抽象和建模,完美模擬出系統(tǒng)表象上的功能,而流程圖只是將用數(shù)學(xué)已經(jīng)完成了的模型給描繪出來。那么問題是,學(xué)生將簡單的數(shù)學(xué)模型運(yùn)用在模擬表決過程中,這雖然可以說是數(shù)學(xué)思維的運(yùn)用,但計算思維的運(yùn)用又從何體現(xiàn)?●與計算思維相關(guān)的抽象與建模,和數(shù)學(xué)中的抽象與建模不同接著考慮另一種情況,假設(shè)投票問題場景中的投票者人數(shù)有很大程度的增加,在現(xiàn)實(shí)中,這樣的情況是難以用直觀的方法來判斷投票結(jié)果的。如果讓一個沒有學(xué)習(xí)過算法的學(xué)生來試著用流程圖模擬此過程,很有可能會繪制出如圖2所示的模樣;或者,也會有學(xué)生繪制出一個類似循環(huán)結(jié)構(gòu)的流程,但這個流程沒有控制進(jìn)出循環(huán)語句塊的條件,而是直接標(biāo)注有“問詢所有人”的語句。雖然人的頭腦很容易把握這些非標(biāo)準(zhǔn)的流程圖的實(shí)質(zhì)過程,但計算機(jī)并不具有直觀地理解這些非標(biāo)準(zhǔn)的流程圖中所要表達(dá)的“要向所有人搜集投票結(jié)果”這一意圖的智慧。從數(shù)學(xué)的角度看,“對集合中的所有元素進(jìn)行某種一致的操作”是一個相當(dāng)合理的要求。然而將這個要求轉(zhuǎn)換為標(biāo)準(zhǔn)的流程圖,卻不得不增加許多細(xì)節(jié)。一個學(xué)習(xí)過算法的學(xué)生能比較像模像樣地繪制出模擬投票場景的循環(huán)結(jié)構(gòu)的標(biāo)準(zhǔn)流程圖來,如使用某個變量來控制循環(huán)次數(shù);使用諸如i=i+1這種通過將增加的值來覆蓋變量自身值的方法來計數(shù);在循環(huán)結(jié)構(gòu)外對某個變量清零,在循環(huán)結(jié)構(gòu)中用累加的方法統(tǒng)計投贊成票的數(shù)量。如果追問一下,這位學(xué)生是如何知道應(yīng)當(dāng)這樣去做的,答案大概率是因?yàn)樵趯W(xué)習(xí)時被告知要如此,或者是被軟件(如Raptor)所限定而只能如此。規(guī)范的流程圖繪制方法有著相當(dāng)統(tǒng)一的模式,但這種模式之所以是現(xiàn)在人們所看到的樣子,其背后隱藏了模式形成的原因,而這個原因和機(jī)器實(shí)施計算的能力和方式是密切相關(guān)的。筆者認(rèn)為,這些流程結(jié)構(gòu)實(shí)際上是對機(jī)器底層的計算過程的封裝和抽象,而并非是對某個現(xiàn)實(shí)事件的抽象。盡管可以將繪制流程圖本身視作抽象和建模,但學(xué)生在學(xué)習(xí)用流程圖描繪算法時,在將數(shù)學(xué)語言轉(zhuǎn)化為規(guī)范的流程圖時,只是運(yùn)用了與計算思維有關(guān)的抽象和建模的已有成果,而并沒有運(yùn)用到計算思維本身;如果說學(xué)生們在問題解決過程中的確運(yùn)用到了抽象與建模,那也僅僅是數(shù)學(xué)方法上的抽象和建模,其中不涉及計算機(jī)科學(xué)特有的方法。關(guān)于怎樣的抽象和建模的過程運(yùn)用到了計算思維,這個問題的答案恐怕非常復(fù)雜,可能涉及如何排除人腦的直觀,更是涉及了關(guān)于可計算性問題的討論。筆者考慮用一種簡單的方法來判別計算思維運(yùn)用與否的必要條件:解決問題的過程應(yīng)當(dāng)與日常頭腦用數(shù)學(xué)方法直接進(jìn)行計算并得出結(jié)果的過程是有所不同的。否則,便可以認(rèn)為其運(yùn)用了數(shù)學(xué)思維而非計算思維來解決了問題。以上討論是筆者設(shè)計下面這些流程圖繪制任務(wù)的原因。任務(wù)是這樣的:讓學(xué)生們試著不用分支結(jié)構(gòu)來完成原本需要用到分支結(jié)構(gòu)的判斷的功能。仍然以模擬三人投票為例,可行的方法不止一種,下頁圖3所示的是用序號加調(diào)用數(shù)組元素的方法,將總共8種投票情況按二進(jìn)制方式計數(shù),并轉(zhuǎn)換為相應(yīng)十進(jìn)制數(shù)的索引,便能從數(shù)組中取出對應(yīng)索引值的表決結(jié)果。而下頁圖4所示的是另一種方法,通過取整運(yùn)算,將1設(shè)置為閾值,凡是大于等于1的情況,最后都顯示1作為表決通過,小于1的情況,最后都顯示0作為表決不通過,當(dāng)然,同樣可以借助數(shù)組的方法,將0和1作為索引值,調(diào)取文字顯示的表決結(jié)果。在其他設(shè)計環(huán)境中,有更多的方法可以使用,如在Python中可以采用限定打印次數(shù)的方法,在邏輯電路中可以結(jié)合與門和或門形成組合邏輯的方法,等等。而不同的計算模型也有其各自頗具特色的方法,如用馬爾可夫算法、標(biāo)簽系統(tǒng)、圖靈機(jī)等都能夠?qū)崿F(xiàn)該任務(wù),這里就不展開了。本文接下來重點(diǎn)圍繞圖4所示的方法展開討論,這種方法實(shí)際上揭示了一種可能性:在算法中,所謂的分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)都不是理所當(dāng)然存在著的,在程序流程分支判斷的時候,實(shí)際上是進(jìn)行了某個運(yùn)算,這個運(yùn)算的結(jié)果就匹配了后續(xù)的某個動作。如果考察某個通用計算機(jī)底層的工作過程,就可以看出所謂的判斷和分支,實(shí)際上是經(jīng)歷了對后續(xù)所要調(diào)用指令的地址的匹配過程。當(dāng)學(xué)生們面對分支結(jié)構(gòu)本身的時候,就已經(jīng)是面對著一個現(xiàn)成的模型。雖然說基礎(chǔ)教育階段的學(xué)生一般不會學(xué)習(xí)到通用計算機(jī)底層實(shí)現(xiàn)相關(guān)的知識,但通過不用分支結(jié)構(gòu)來完成原本需要用到分支結(jié)構(gòu)的判斷的任務(wù),學(xué)生們能夠直觀地感知到,可以用數(shù)學(xué)的方法建立一個模型,來模擬出判斷的過程,而不是直接用分支結(jié)構(gòu)的語句來完成判斷。這里必須區(qū)分“用分支結(jié)構(gòu)完成數(shù)學(xué)判斷”和“用數(shù)學(xué)方法完成分支結(jié)構(gòu)的判斷”兩者的區(qū)別,后者的過程與日常頭腦中用數(shù)學(xué)方法直接進(jìn)行計算并得出結(jié)果的過程是不同的。如果用筆者提出的判別計算思維運(yùn)用與否的必要條件,對于“用分支結(jié)構(gòu)完成數(shù)學(xué)判斷”這一過程是否運(yùn)用了計算思維的結(jié)論是否定的,后者“用數(shù)學(xué)方法完成分支結(jié)構(gòu)的判斷”這一過程作為候選項存活了下來,但若說后者的過程確實(shí)運(yùn)用到了計算思維,論據(jù)仍然是不充分的?!裨O(shè)計活動體現(xiàn)出為計算裝置的能行而進(jìn)行抽象和建模的過程那么,何種情況下的抽象和建模,可以認(rèn)為與計算思維的運(yùn)用有關(guān)?對于這個問題,筆者遍查文獻(xiàn)資料而未得,甚至很少有人將其作為問題來提出。筆者認(rèn)為,是否考慮到一個計算裝置的能行,是判斷計算思維運(yùn)用與否的一個充分條件。關(guān)于三人投票表決的例子,除了通過對三人投贊成票總數(shù)除以2再取整的數(shù)學(xué)方法來實(shí)現(xiàn)模擬,還有另一種方法(大概是更接近現(xiàn)實(shí)的方法),即觀察是否存在a和b同時舉手,或a和c同時舉手,或b和c同時舉手,或a、b和c同時舉手的任意一種情況。但因?yàn)閍、b和c同時舉手的情況已經(jīng)包含了前三種情況,所以并不需要單獨(dú)加以判斷。如果寫成邏輯運(yùn)算式,就是r=a*b+a*c+b*c,其中所有變量都是布爾值的,若計算結(jié)果r為True,則當(dāng)作表決通過,若計算結(jié)果r為False,則當(dāng)作表決不通過。這樣一來,算法流程也變得非常簡單,只要輸入三個投票數(shù)據(jù)(用1代表舉手,0代表不舉手)后,計算并輸出r值就可以了。十分遺憾的是,或者說很幸運(yùn)的是,Raptor這個流程圖模擬軟件只支持在判斷框中進(jìn)行邏輯運(yùn)算,而不支持在處理語句框中進(jìn)行邏輯運(yùn)算。之所以說遺憾,是因?yàn)樵诮虒W(xué)中不得不放棄Raptor而改用其他工具來描繪通過邏輯運(yùn)算模擬投票表決過程的算法。之所以說幸運(yùn),是因?yàn)镽aptor軟件能力的不足,恰恰提供了討論計算裝置“能行”問題的入口。怎樣讓Raptor邏輯運(yùn)算能力的“不可行”變?yōu)椤澳苄小??考慮到Raptor中數(shù)學(xué)運(yùn)算的能力是比較充分,所以可以試著用數(shù)學(xué)運(yùn)算來模擬邏輯運(yùn)算(計算機(jī)的真實(shí)運(yùn)行過程恰恰反過來:用邏輯運(yùn)算模擬數(shù)學(xué)運(yùn)算,而計算機(jī)自身的邏輯運(yùn)算是依靠硬件電路實(shí)現(xiàn)的)??梢园l(fā)現(xiàn),邏輯的與運(yùn)算可以簡單地用乘法來模擬,但邏輯的或運(yùn)算卻不能簡單地用數(shù)學(xué)中的加法來替代。因此,希望能創(chuàng)設(shè)某個數(shù)學(xué)公式,當(dāng)兩個輸入均為0的時候運(yùn)算結(jié)果也為0,當(dāng)兩個輸入有一個1,或兩個都是1的時候,運(yùn)算結(jié)果都為1。有沒有這樣的公式呢?人工智能中的感知器概念提供了解決思路,那就是為輸入值設(shè)置權(quán)重和偏置。在Raptor軟件中可使用以下公式:r=floor(a*0.8+b*0.8+0.2)當(dāng)a和b變量的輸入值限定為0或1的時候,計算r值的過程就模擬了邏輯或門的運(yùn)算過程。在該公式中,0.8是權(quán)重,而0.2是偏置。如果在Python環(huán)境中,使用公式r=int(a*0.8+b*0.8+0.2)也能實(shí)現(xiàn)同樣的效果。雖然說Python具備了完整的邏輯運(yùn)算功能,并不需要用這樣的辦法來進(jìn)行模擬,但也可以在教學(xué)中故意限制邏輯運(yùn)算符的使用,讓學(xué)生思考如何找到替代邏輯運(yùn)算的方法。當(dāng)前,計算機(jī)底層的邏輯運(yùn)算是依靠晶體管或場效應(yīng)管來實(shí)現(xiàn)的,但人的頭腦中神經(jīng)元的運(yùn)作方式,相對而言卻與設(shè)置權(quán)重和偏置的方法更為接近。這
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國錦綸切片行業(yè)競爭格局規(guī)劃研究報告
- 2025-2030年中國銅礦采選行業(yè)發(fā)展?fàn)顩r及營銷戰(zhàn)略研究報告
- 2025-2030年中國蜂窩紙板市場運(yùn)營狀況及投資戰(zhàn)略研究報告
- 2025-2030年中國藥學(xué)教育發(fā)展模式及未來投資戰(zhàn)略分析報告
- 2025-2030年中國聚碳酸酯pc行業(yè)運(yùn)行狀況規(guī)劃分析報告
- 2025-2030年中國粗雜糧行業(yè)競爭格局及發(fā)展前景分析報告
- 2025-2030年中國空氣污染治理設(shè)備市場經(jīng)營狀況及發(fā)展趨勢分析報告
- 2025-2030年中國碼垛機(jī)器人市場運(yùn)行動態(tài)及發(fā)展前景分析報告
- 幼兒健康有營養(yǎng)的蔬菜教案(12篇)
- 中國傳媒大學(xué)《電子與電工技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 北師大版二年級數(shù)學(xué)下冊全冊10套試卷(附答案)
- GB/T 2423.17-2024環(huán)境試驗(yàn)第2部分:試驗(yàn)方法試驗(yàn)Ka:鹽霧
- 數(shù)字出版概論 課件 第六章 數(shù)字內(nèi)容加工、管理技術(shù)
- 糖尿病并發(fā)癥的早期篩查
- 2019年山東省職業(yè)院校技能大賽中職組“沙盤模擬企業(yè)經(jīng)營”賽項規(guī)程
- GB/T 32399-2024信息技術(shù)云計算參考架構(gòu)
- 初中體育與健康 初二 水平四(八年級)田徑大單元教學(xué)設(shè)計+快速跑教案
- 2024-2025學(xué)年華東師大版數(shù)學(xué)七年級上冊計算題專項訓(xùn)練
- 移動通信運(yùn)營商倉庫安全管理制度
- DL∕T 5452-2012 變電工程初步設(shè)計內(nèi)容深度規(guī)定
評論
0/150
提交評論