第10课 韩信点兵枚举法的实现 课件(共9张PPT)

资源下载
  1. 二一教育资源

第10课 韩信点兵枚举法的实现 课件(共9张PPT)

资源简介

(共9张PPT)
六年级上册 信息科技
“韩信点兵”枚举法的实现
第10课
你将学习
1.枚举法解决问题的一般过程。
2.枚举法的程序实现。
讨论
你知道“韩信点兵”的故事吗?
他是怎么快速算出士兵的总人数的?
建构
假如由你来“点兵”,你将采用何种算法?
共1500人,
战后,死伤四五百人,
估计还有1000~1100人,
3人一排,多出2人,
5人一排,多出3人,
7人一排,多出2人。
韩信马上算出还有1073人。
抽象与建模
剩余士兵总人数
用变量x表示
抽象与建模
枚举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依次取1000~1100范围内的值,
采用循环结构;
判断条件是否满足,
采用分支结构
算法的程序实现
求余运算符: %
x=1000
while x<1101:
if x%3==2 and x%5==3 and x%7==2:
print("剩余的士兵数为:",x)
x=x+1
如:5%2,结果是1;17%3,结果是2。
x除以3余数是2
x%3==2
x除以3余数是2,x除以5余数是3,x除以7余数是2
判断多个条件是否同时满足,用逻辑运算符and来连接。
x%3==2 and x%5==3 and x%7==2
练习
假如“韩信点兵”的问题描述修改为:有一次,韩信带领1500名士兵打仗。战后,死伤一二百人。剩下的士兵中,他命令士兵3人一排,结果多出1名;接着命令士兵5人一排,结果多出4名;又命令士兵7人一排,结果多出3名。请问剩下的士兵有多少人?
请用枚举法设计算法解决上述问题。用Python语言编写。

展开更多......

收起↑

资源预览