資源簡介 (共17張PPT)韓信點兵枚舉法的實現浙教版六年級上冊第10課 韓信點兵枚舉法的實現學習內容1. 枚舉算法解決問題的一般過程。2. 枚舉算法的程序實現。探索你知道韓信點兵的故事嗎?韓信是怎么計算出剩余士兵的數量呢?探索建構“韓信點兵”不僅是一個歷史故事,還是一個有趣的猜數游戲。其求解的算法有多種,如枚舉算法等。一、問題描述秦朝末年,楚漢相爭。有一次,韓信帶領 1500 名士兵打仗。戰后,死傷四五百人。剩下的士兵中,他命令士兵 3 人一排,結果多出 2 名;接著命令士兵 5 人一排,結果多出 3 名;又命令士兵 7 人一排,結果又多出 2 名。韓信馬上宣布:我軍還有 1073 名勇士!這就是“韓信點兵”故事的由來。二、抽象與建模韓信點兵的過程可表示為數的除法運算。“□”指剩下的士兵總數,用變量 x 來表示。根據“死傷四五百人”可知,變量 x 的范圍為 1000~1100 且同時滿足“x 除 3 余數為 2、x 除 5 余數為 3、x 除 7 余數為 2”這三個條件。可建立如下模型:二、抽象與建模枚舉 x 在 1000~1100 范圍內的每一個值,判斷條件“x 除 3 余數為 2、x 除5 余數為 3、x 除 7 余數為 2”是否同時滿足,滿足條件的 x 就是要求的解。即:當 x=1000 時,條件“x 除 3 余數為 2、x 除 5 余數為 3、x 除 7 余數為 2”是否同時滿足?當 x=1001 時,條件“x 除 3 余數為 2、x 除 5 余數為 3、x 除 7 余數為 2”是否同時滿足?當 x=1100 時,條件“x 除 3 余數為 2、x 除 5 余數為 3、x 除 7 余數為 2”是否同時滿足?三、算法設計根據上述的抽象與建模,解決韓信點兵的問題可采用枚舉算法。x 的值依次取 1000~1100 范圍內的值,可以采用循環結構,判斷條件“x 除 3 余數為2、x 除 5 余數為 3、x 除 7 余數為 2”是否同時滿足,可以采用分支結構。三、算法設計對應的算法流程圖,如圖所示:四、算法的程序實現在 Python 中,求余數的運算符為“%”,即表達式 x % y 的功能是“用 x除以 y,取余數”,如“5 % 2”的結果就是 1。因此,條件“x 除 3 余 2 ”就可表示為:x % 3==2。要判斷多個條件是否同時被滿足,需要用“and”邏輯運算符,即表達式 x and y 的功能是“當 x 和 y 的值都為真時,表達式的值為真”。因此,條件“x 除 3 余 2 且 x 除 5 余 3 且 x 除 7 余 2 ?”就可表示為:x % 3==2 and x %5==3 and x % 7==2。四、算法的程序實現上述算法用 Python 語言編寫的程序如下:練一練假如“韓信點兵”的問題描述修改為:秦朝末年,楚漢相爭。有一次,韓信帶領 1500 名士兵打仗。戰后,死傷一二百人。剩下的士兵中,他命令士兵 3 人一排,結果多出 1 名;接著命令士兵 5 人一排,結果多出 4 名;又命令士兵 7 人一排,結果又多出 3 名。請你利用枚舉算法解決上述問題。謝謝聆聽!INTERNET OF THINGS謝謝21世紀教育網(www.21cnjy.com)中小學教育資源網站兼職招聘:https://www.21cnjy.com/recruitment/home/admin 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫