课堂6:枚举算法经典案例

共 833字,需浏览 2分钟

 ·

2021-10-24 09:27

说在前面

解析算法和枚举算法是高中信息技术算法教学中最基础、也最重要的两种算法。枚举算法的优点是对现实生活的直接描述,易于理解,容易证明算法的正确性;缺点是枚举算法需要考察多个变量的大量状态,因此效率比较低。应尽量尽可能结合解析算法,以减少枚举变量和枚举范围,以提高效率。
原来在教老教材的时候,曾经找了不少经典案例,并用VB语言编程实现过,今天老瓶装新酒,同样的案例,用Python语言来实现。


经典案例



课后练习

(开放题)统计“勾股数”:满足等式a*a +b*b = c*c的三个正整数a,b,c称为“勾股数”,求出100以内所有的“勾股数”。

下面的代码使用枚举算法列举出了100以内所有的“勾股数”,但是代码存在一些问题,你能发现是什么问题吗?该如何改进?

ans = []

for a in range(1, 100):

    for b in range(1,100):

        for c in range(1,100):

            if a*a + b*b == c*c:

               ans.append((a, b, c))

print(ans)


需要本文PPT、源代码和课后练习答案的,可以加入“Python算法之旅”知识星球参与讨论和下载文件,Python算法之旅”知识星球汇集了数量众多的同好,更多有趣的话题在这里讨论,更多有用的资料在这里分享。

我们专注Python算法,感兴趣就一起来!



相关优秀文章:

阅读代码和写更好的代码

最有效的学习方式

课堂1:海龟绘图之正四边形及其拓展

课堂2:海龟绘图之多彩螺旋线

课堂3:海龟绘图之绘制虚线

课堂4:循环结构经典案例

课堂5:解析算法经典案例


浏览 245
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报