張明
大約在1500年前,我們的老祖宗寫了一本數(shù)學(xué)奇書《孫子算經(jīng)》(這“孫子”可不是是那個(gè)提出“知彼知己”的軍事家孫子),下卷第31題記載了一個(gè)很好玩的數(shù)學(xué)問題:“今有雉兔同籠,上有三十五頭,下有九十四足,問雉兔各幾何?”
這道題就是后世“雞兔同籠”的始祖,如今已被義務(wù)教育課程標(biāo)準(zhǔn)實(shí)驗(yàn)教科書人教版數(shù)學(xué)五年級(jí)上冊(cè)選為補(bǔ)充教材并且在部分五到六年級(jí)的課外習(xí)題所用。
關(guān)于這道題的解法有很多種,這一次我們?cè)囍镁幊誊浖禨cratch》求出了答案,并錄制了完整的解題過程,希望幫助大家更好地理解如何運(yùn)用編程解決簡(jiǎn)單、有趣的數(shù)學(xué)問題。
不過在開始之前,需要先明白一個(gè)問題:我們?yōu)槭裁匆獙W(xué)數(shù)學(xué),它和編程有何關(guān)系?
中科院院士、數(shù)學(xué)教授李大潛給出了答案———數(shù)學(xué)能夠提高我們的素質(zhì)和能力,這些素質(zhì)和能力包括:嚴(yán)密的邏輯思維能力、高度的抽象思維能力、自覺形成數(shù)量觀念和讓我們變得更細(xì)心。
數(shù)學(xué)和編程關(guān)系緊密,具備數(shù)學(xué)+編程的人優(yōu)勢(shì)會(huì)更大,這和它們之間的聯(lián)系密切相關(guān)。
數(shù)學(xué)和編程的關(guān)系
1.編程所需要的很多能力和數(shù)學(xué)是相通的。比如邏輯思維、模式識(shí)別等?,F(xiàn)在機(jī)器學(xué)習(xí)用到的算法,其本質(zhì)還是數(shù)學(xué)模型計(jì)算問題。
2.編程能夠幫助孩子更好地理解數(shù)學(xué)抽象概念。孩子們可以通過編程將抽象的數(shù)學(xué)概念轉(zhuǎn)化為看得見的、會(huì)動(dòng)的圖像。例如最常用的函數(shù),書本上的概念理解起來很抽象,通過編程就可以在計(jì)算機(jī)上展示出來。
Sin和Cos在三角形上的運(yùn)用如下圖。
3.編程能夠強(qiáng)化孩子的數(shù)學(xué)能力。如果孩子想用代碼建造飛機(jī),那就要用到各種各樣的數(shù)學(xué)知識(shí),并且還要調(diào)用抽象思維的能力。
想清楚了這兩個(gè)問題哦,我們?cè)倏淳幊探鉀Q數(shù)學(xué)問題的過程收獲會(huì)更多。
開始,需要搞清楚編程解決數(shù)學(xué)問題的邏輯:我們要解出的數(shù)學(xué)答案是什么(求兔子和雞的數(shù)量)-梳理出這個(gè)問題的邏輯-確定用怎樣的公式計(jì)算-在草稿紙上畫出流程圖-將這個(gè)順序轉(zhuǎn)化為代碼語(yǔ)言-輸入計(jì)算機(jī)得出結(jié)果。
下面一步步細(xì)分:
第一步:添加角色
在角色區(qū)添加角色,分別是公雞、兔子、籠子各一個(gè):
第二步:設(shè)置邏輯運(yùn)算
1.籠子角色的腳本要根據(jù)已知條件算出結(jié)果,并在界面顯示出結(jié)果(白框里的文字),我們輸入題目中已知條件:
我們要求雞和兔子的數(shù)目,就是要解出兩個(gè)未知數(shù),把它轉(zhuǎn)化為代碼語(yǔ)言,這就需要?jiǎng)?chuàng)建兩個(gè)變量來代表這兩個(gè)未知數(shù)(兔子和雞)。
現(xiàn)在根據(jù)已知條件輸入兔+雞=35,兔×4+雞×2=94,注意左邊的綠色框,里面包含了很多邏輯關(guān)系:“且”“或”等等。孩子在這一步要思考:這兩個(gè)式子是缺一不可還是滿足一個(gè)就行呢?這就是對(duì)孩子邏輯思維最好的訓(xùn)練。
接著輸入變量(發(fā)散下思維:分析一個(gè)問題時(shí),教會(huì)孩子找出它的變量,問題就會(huì)好解決很多)。
完整代碼如下。
雞和兔要執(zhí)行的任務(wù)是:當(dāng)它們接受到“計(jì)算雞兔多少只”這個(gè)指令時(shí),就要分別“喊出”結(jié)果,兔子和雞的代碼如下圖所示。
最后的結(jié)果如下圖所示。
我們求出了答案,孩子在過程中對(duì)邏輯關(guān)系“且”“或”等有了更深的了解,對(duì)變量也會(huì)有初步認(rèn)識(shí),這些收獲都能給孩子一些啟示,有助于孩子以后高效地處理任何問題。
這就是數(shù)學(xué)+編程的強(qiáng)大之處。
關(guān)于編程學(xué)習(xí),最后分享一些學(xué)習(xí)編程的建議:
學(xué)習(xí)編程的前提是孩子一定要對(duì)編程感興趣。孩子有興趣了,就可以選擇合適的編程語(yǔ)言。
目前比較流行的編程語(yǔ)言有Python、C++以及Java等,而適合小朋友學(xué)習(xí)的主要是圖形化編程Scratch、Python、以及面向NOIP競(jìng)賽的C++語(yǔ)言,Python已經(jīng)成為浙江2018年高考內(nèi)容。
對(duì)于零基礎(chǔ)、年滿7歲的孩子,這里建議從《Scratch》這款由美國(guó)麻省理工研發(fā)的圖形化編程軟件開始學(xué)習(xí),簡(jiǎn)單、有趣、易上手,用積木塊代替了枯燥的代碼,孩子短時(shí)間內(nèi)就能學(xué)會(huì)它。