資源簡介 (共14張PPT)第10課 “韓信點兵”枚 舉法的實現學習內容枚舉法的程序實現枚舉法解決問題的一般過程探 索“韓信點兵”的故事,同學們知道嗎 韓信是怎么快速算出士兵的總人數的 探 索建 構“韓信點兵”故事是一個有趣的猜數游戲。它有很多種求解算法,例如枚舉法。一、問題描述相傳有一次,韓信帶領1500名士兵去打仗。一場戰役過后,士兵死傷四五百人。他命令剩下的士兵中3個人一排,發現多出來2個人;然后又命令5個人一排,多出來3個人;最后命令7個人一排,多出來2個人。韓信馬上算出人數:我軍還有1073名勇士!二、抽象與建模可以用數的除法運算來表示韓信點兵的過程。二、抽象與建模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、除以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名士兵去打仗,一場戰役過后,士兵死傷100多人。他命令剩下的士兵3個人一排,發現多出來1個人;然后又命令5個人一排,多出來4個人;最后命令7個人一排,多出來3個人。問:剩下的士兵一共多少人 請同學們用枚舉算法來解決上述問題。謝謝! 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫