内容正文:
本单元的学习目标是:学生能够熟练应用流程图描述算法,用程序设计语言实现简单算法;能采用合理的算法来解决实际问题,能运用数字化工具表达思想、构建知识,养成数字化学习与创新的习惯(信息意识、数字化学习与创新)。在实践过程中体验利用数字化工具处理数据和发现信息的过程,提高使用计算机解决实际问题的能力(计算思维)。
4.1学习目标
熟悉将解决问题的方法归结为一系列清晰、准确的步骤的过程。
了解算法的基本要素和重要特征。
运用恰当的方式描述算法。
运用 Python 语言实现简单算法,解决问题。
4.2学习目标
感受数据的图形化表示。
设计解析式或迭代方程,进行数值计算,解决问题。
了解数值类算法在实际问题解决时的应用及常用方法。
4.3学习目标
运用合适的算法形成解决问题的方案。
了解算法设计中的分治思想,并运用二分查找解决实际问题。
体验递归算法,并结合具体问题开展编程实践。
4.4学习目标
学会分析任务,描述需求分析,知道需要解决的关键问题。
体验软件开发的基本流程。
$$与算法零距离
活动:安排住宿
活动描述:有n个男生一起出去旅游,要安排酒店住宿,已知4人间为140元/间,3人间为120元/间,那怎样订房间最省钱,而且要保证每人都有床位。
1. 选题理由
本项目包含了“枚举”算法,枚举算法是我们在日常中使用到的最多的一个算法,使用枚举来解决问题是利用计算机计算速度快的特点,罗列所有可能性,筛选出正确的答案。
2. 操作建议
学生在学习本章节之前已经掌握了程序设计三大结构,重点在循环结构中的参数应该如何设置,问题解决的步骤是怎样的。另外还需要提示Python语言中的整除和取余符号。
参考代码:
n=int(input("输入人数:"))
min=1000000 #最小值赋初值
for r4 in range(n//4+1): #罗列4人间房间数量
rs=n-4*r4 #计算剩余人数
if rs%3==0: #计算剩余人数需要多少个3人间
r3=rs//3
else:
r3=rs//3+1
w=140*r4+120*r3 #计算费用
if min>w:min=w #保存最少费用
print(min)
3. 注意问题
“枚举”法的优点在于(1)是解决问题的思路的“直译”,因此比较容易理解,(2)是基于穷举所有状态的基础上的,因此正确性比较容易证明。“枚举”的缺点是枚举的效率。在教学中可以提示学生优化枚举的范围,减少枚举的个数。
$$11646688
67751127
15213760
22788504
62022026
44542415
52231025
43868423
91465894
31962617
41293215
68531358
91758884
32960377
81880204
10311094
44958820
52454654
84491480
52839558
63059495
23492526
29329824
83181481
20014109
97548062
77762406
17219593
73530855
78739473
84499893
36436106
25713338
11117081
82138414
99849917
51729586
33371928
77375588
17333190
80044612
24470937
61439806
61429708
35518566
53766768
82409459
70883200
69658612
77834055
70232699
23224206
13701111
59046994
49333195
66131878
45535418
99434914
28503934
53506202
62213374
91859896
61442111
91644662
43340989
18756770
75981189
25430074
99851412
69043323
71980926
45841555
93872782
64737109
49293343
39494734
15761266
36917577
35114168
15567692
57111457
68481864
19939509
70779305
44325538
41788749
76668354
67352043
66305793
84178859
1013