Scratch與數(shù)學(xué)的整合38
????????????????????第38課????????過河
一、預(yù)學(xué)提示
????????過河也是趣味數(shù)學(xué)題型的其中之一。它分好多種小題型,比如已知有20個人要乘船過河,船一次只能載5人,問至少要乘幾次船才能使大家全部過河?至于答案我在后面會講到。包括如何用Scraatch實現(xiàn)。
二、例題講解
????????1、預(yù)學(xué)提示中的例題解析如下:我先畫一下圖,在上邊的直線的里面標(biāo)上沒過河的剩余

人數(shù),在上側(cè)用“-1人”表示“減去船夫”,在19——14之間標(biāo)上“-5人”表示“在余下4人之前每次5人過河”。如果我把過河加往返看做1個周期的話,那么這20人減去1個船夫后還剩20-1=19(人),19÷5=3……4,說明5個5個人過要過3次,這3次來回總共有3×2+2=8(次),為什么要加2?∵最后還有余下的4人沒過,這就說明等到余下4人時還要單獨一次往返。∴答案就是6次。
????????2、由此可見,解決過河問題的公式需要分類討論:當(dāng)總?cè)藬?shù)-1的差除以可載人數(shù)的結(jié)果沒有余數(shù)時,{[(總?cè)藬?shù)-1)]÷可載人數(shù)}×2-1=過河的次數(shù);否則{[(總?cè)藬?shù)-1)]÷可載人數(shù)}×2+2=過河的次數(shù)。
三、流程圖
????????首先程序開始,詢問有多少個人過船,將過船的人數(shù)設(shè)為“回答”,然后用過船的人數(shù)-1求出載客的人數(shù),接著詢問每次能載多少個乘客,將可載的人數(shù)設(shè)為“回答”。接下來判斷是否載客的人數(shù)÷可載的人數(shù)的余數(shù)=0,如果“是”那么接下來用(載客的人數(shù)÷可載的人數(shù))×2-1求出過河的人數(shù),否則套用載客的人數(shù)-載客的人數(shù)除以可載的人數(shù)的余數(shù)÷可載的人數(shù)×2+2求出過河的次數(shù)。再接下來將乘船的次數(shù)設(shè)為“過河的次數(shù)”,最后作答,程序結(jié)束。

四、變量信息
? ? ? ?過船的人數(shù)、載客的人數(shù)、過河的次數(shù)、乘船的次數(shù)

五、代碼示例
????????首先確定總?cè)藬?shù),而這些人里面本身包含1名船夫,那么知道了總?cè)藬?shù),把這1名船夫減掉,就是船夫要載客的人數(shù)。
當(dāng)綠旗被點擊
詢問有多少個人過船?
將過船的人數(shù)設(shè)為回答
將載客的人數(shù)設(shè)為:過船的人數(shù)-1
詢問每次能載多少個乘客?
將可載的人數(shù)設(shè)為回答
????????∵解決過河問題時需要分類討論,討論總?cè)藬?shù)-1的差除以可載的人數(shù)的結(jié)果有余數(shù)。根據(jù)判斷情況套用合適的公式。由于前面已經(jīng)推導(dǎo)出載客的人數(shù)了,∴現(xiàn)在可以直接把該變量值套入公式內(nèi)求過河的次數(shù)。由于Scratch中不提供求商模塊,∴要將判斷的值與余數(shù)除法中商=(被除數(shù)-余數(shù))÷除數(shù)結(jié)合起來進(jìn)一步推導(dǎo)。
如果載客的人數(shù)除以可載的人數(shù)的余數(shù)=0那么
將過河的次數(shù)設(shè)為:(載客的人數(shù)÷可載的人數(shù))×2-1
否則
將過河的次數(shù)設(shè)為:載客的人數(shù)-載客的人數(shù)除以可載的人數(shù)的余數(shù)÷可載的人數(shù)×2+2
將乘船的次數(shù)設(shè)為:過河的次數(shù)
說:“連接連接答:至少要乘和過河的次數(shù)和次才能使所有人過河”
