国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

算法編程在計(jì)算思維能力培養(yǎng)中的應(yīng)用

2021-05-23 12:03李茜
教育·校長(zhǎng)參考 2021年1期
關(guān)鍵詞:表達(dá)式兇手運(yùn)算

李茜

什么是計(jì)算思維?

所謂“計(jì)算思維”,也就是計(jì)算機(jī)解決問題的思維,計(jì)算思維是人解決問題思維的一種抽象化。例如,計(jì)算機(jī)把我們?nèi)粘I钪行枰罁?jù)條件判斷進(jìn)而做出決定的問題抽象為分支結(jié)構(gòu),將需要重復(fù)做的事情抽象為循環(huán)結(jié)構(gòu),這樣一來(lái),許多現(xiàn)實(shí)生活中我們所遇到的問題,或者種類相似的問題,都可以通過(guò)計(jì)算思維的轉(zhuǎn)換,抽象為計(jì)算機(jī)語(yǔ)言所編寫出來(lái)的程序。

為什么要學(xué)習(xí)算法?

算法是計(jì)算機(jī)解決特定問題的確定的、有限的步驟的集合,無(wú)論學(xué)習(xí)哪門計(jì)算機(jī)語(yǔ)言,學(xué)習(xí)算法都是非常重要的,不同的算法體現(xiàn)了計(jì)算機(jī)思維的不同呈現(xiàn)方式,學(xué)習(xí)算法,對(duì)于學(xué)生理解計(jì)算思維,應(yīng)用計(jì)算思維解決問題都是非常有幫助的。

算法舉例

遞歸算法 遞歸算法是常用的編程技術(shù),其基本思想就是“自己調(diào)用自己”,它可以用簡(jiǎn)單的程序來(lái)解決某些復(fù)雜的計(jì)算問題。在程序設(shè)計(jì)中,應(yīng)用遞歸算法的關(guān)鍵即是找到遞歸的規(guī)律和遞歸終止的條件。

案例:數(shù)字黑洞153

任意取一個(gè)是3的倍數(shù)的自然數(shù)。求出這個(gè)數(shù)各個(gè)數(shù)位上數(shù)字的立方和,得到一個(gè)新數(shù);然后再求出這個(gè)新數(shù)各個(gè)數(shù)位上數(shù)字的立方和,又得到一個(gè)新數(shù),如此重復(fù)運(yùn)算下去,最后一定會(huì)掉入數(shù)字黑洞153之中。例如:69是3的倍數(shù),63+93=945,93+43+53=918,93+13+83=1242,13+23+43+23=81,83+13= 513,53+13+33=153。

接下來(lái),我們來(lái)看,如何通過(guò)算法描述來(lái)說(shuō)明計(jì)算機(jī)解決問題的思維方式。

算法如下:一是提示用戶輸入一個(gè)3的倍數(shù)。二是求這個(gè)數(shù)各個(gè)數(shù)位的立方和。三是判斷結(jié)果是否等于153?四是如果不等于153則重復(fù)2、3兩步,如果等于153,則證明其掉入黑洞153,程序結(jié)束。

這個(gè)過(guò)程和我們?nèi)四X判斷這個(gè)問題的過(guò)程非常相似,而以上描述的算法就是一個(gè)從人的思維到計(jì)算思維轉(zhuǎn)換的過(guò)程。

枚舉算法 枚舉算法是我們?cè)谌粘V谐S靡粋€(gè)算法,它的核心思想就是嘗試所有的可能。它的本質(zhì)就是從所有候選答案中去搜索正確的解,使用該算法需要滿足兩個(gè)條件:一是可預(yù)先確定候選答案的數(shù)量。二是候選答案的范圍是已知的、明確的。

案例:韓信點(diǎn)兵

秦朝末年,楚漢相爭(zhēng)。一次,韓信率1500名將士與楚王大將李鋒交戰(zhàn)后返回大本營(yíng)。當(dāng)行至一山坡,忽有后軍來(lái)報(bào),說(shuō)有楚軍騎兵追來(lái)。韓信兵馬到坡頂,見來(lái)敵不足500騎,便急速點(diǎn)兵迎敵。他命令士兵3人一排,結(jié)果多出2名;接著命令士兵5人一排,結(jié)果多出3名;他又命令士兵7人一排,結(jié)果又多出2名。韓信馬上向?qū)⑹總冃迹何臆娪?073名勇士,敵人不足500,我們居高臨下,以眾擊寡,一定能打敗敵人。

這是一個(gè)典型的枚舉算法的案例。從對(duì)韓信點(diǎn)兵這個(gè)問題分析得出:

枚舉的范圍是:1000—1500。

條件是:一是士兵數(shù)除3的余數(shù)為2;二是士兵數(shù)除5的余數(shù)為3;三是士兵數(shù)除7的余數(shù)為2。三個(gè)條件必須同時(shí)滿足。

算法如下:一是列舉1000—1500范圍內(nèi)的所有數(shù)字。二是按照“兵除3的余數(shù)為2;兵除5的余數(shù)為3;兵除7的余數(shù)為2”的條件逐一判斷。三是找到符合條件的數(shù)字立即停止判斷。

枚舉法的應(yīng)用非常廣泛,很多數(shù)學(xué)問題都可以用枚舉法來(lái)實(shí)現(xiàn),例如雞兔同籠等等。

邏輯推理 在計(jì)算思維的世界里,除了算術(shù)運(yùn)算、關(guān)系運(yùn)算,還有一種運(yùn)算叫“邏輯運(yùn)算”,邏輯運(yùn)算符有三種:非、與、或。計(jì)算機(jī)在處理問題時(shí),除了要處理和運(yùn)算有關(guān)的問題,還要處理邏輯判斷類的問題。

案例:誰(shuí)是殺手

日本某地發(fā)生了一起謀殺案,被控制的四個(gè)犯罪嫌疑人分別說(shuō)了如下供詞:

甲說(shuō):“不是我?!币艺f(shuō):“是丙?!北f(shuō):“是丁?!倍≌f(shuō):“丙在胡說(shuō)?!币阎齻€(gè)人說(shuō)了真話,一個(gè)人說(shuō)的是假話?,F(xiàn)在根據(jù)這些信息,請(qǐng)你找出到底誰(shuí)是兇手。

現(xiàn)在,我們需要編寫一個(gè)程序,讓程序幫我們判斷出“誰(shuí)是兇手”。那么,我們需要將問題轉(zhuǎn)化為計(jì)算機(jī)可以理解的形式。

首先,我們將嫌犯的陳述,對(duì)應(yīng)為下方的邏輯表達(dá)式:

已知條件:甲說(shuō):“不是我。”表達(dá)式:<殺手=1>不成立。

已知條件:乙說(shuō):“是丙?!北磉_(dá)式:<殺手=3>。

已知條件:丙說(shuō):“是丁?!北磉_(dá)式:<殺手=4>。

已知條件:丁說(shuō):“丙在胡說(shuō)?!北磉_(dá)式:<殺手=4>不成立。

接下來(lái),是如何表達(dá)四個(gè)人中有三個(gè)人說(shuō)了真話,也就是以上的四個(gè)表達(dá)式返回值之和等于3。

算法如下:一是假設(shè)兇手=1。二是判斷上方表達(dá)式中4個(gè)表達(dá)式的和是否為3。三是如果成立,則找到兇手,說(shuō)出兇手。四是如果不成立,則兇手值加1,重復(fù)步驟2、3。五是當(dāng)兇手=4,四個(gè)嫌犯都判斷完畢,兇手就在其中。

遇到類似的問題,我們需要做的,就是把已知條件和條件之間的關(guān)系表達(dá)清楚,其他的問題就交給計(jì)算機(jī)來(lái)處理。

筆者的話

生活中的很多問題都可以通過(guò)計(jì)算思維抽象成為具體的形式:如不斷變化的數(shù)值可以抽象為變量;能否滿足條件可以抽象為邏輯表達(dá)式;對(duì)事物的判斷可以抽象為分支結(jié)構(gòu),反復(fù)做的事情可以抽象為循環(huán)結(jié)構(gòu)等等。擁有較強(qiáng)計(jì)算思維能力的學(xué)生,具備更強(qiáng)大的解決問題的能力,當(dāng)在生活中遇到一些難以解決的問題時(shí),往往會(huì)想到借助計(jì)算機(jī)編寫程序的方式來(lái)找到問題的答案。本文中筆者以算法編程為背景,通過(guò)幾個(gè)編程案例,呈現(xiàn)了分析問題→思維轉(zhuǎn)換→程序?qū)崿F(xiàn)的過(guò)程,體會(huì)現(xiàn)實(shí)生活中的問題如何抽象并轉(zhuǎn)換成為能夠?yàn)橛?jì)算機(jī)理解的應(yīng)用程序的過(guò)程,進(jìn)而感受計(jì)算思維的魅力。

(作者單位:首都師范大學(xué)附屬育新學(xué)校)

猜你喜歡
表達(dá)式兇手運(yùn)算
處死“兇手”
靈活選用二次函數(shù)表達(dá)式
長(zhǎng)算式的簡(jiǎn)便運(yùn)算
第二個(gè)兇手
加減運(yùn)算符號(hào)的由來(lái)
“整式的乘法與因式分解”知識(shí)歸納
真正的兇手
尋找勾股數(shù)組的歷程
誰(shuí)是兇手
議C語(yǔ)言中循環(huán)語(yǔ)句
进贤县| 莫力| 江津市| 天镇县| 乐平市| 吉木萨尔县| 建德市| 湟中县| 开远市| 饶平县| 龙岩市| 察雅县| 武川县| 太康县| 和静县| 陆丰市| 丹棱县| 沾益县| 阿拉善右旗| 荣成市| 南华县| 丹凤县| 凌源市| 杨浦区| 吉林市| 象山县| 新闻| 绥宁县| 沙坪坝区| 九寨沟县| 上犹县| 禄劝| 洛扎县| 襄城县| 甘孜| 泾川县| 长寿区| 宣武区| 清流县| 满洲里市| 磴口县|