文档详情

Python程序设计实践 教案 实验19 趣味算法.docx

发布:2025-04-19约8.45千字共9页下载文档
文本预览下载声明

《Python程序设计实践教程》课程教案

课题:趣味算法

教学目的:

对于计算机科学而言,算法(Algorithm)是一个非常重要的概念。它是程序设计的灵魂,是将实际问题与解决该问题的计算机程序建立联系的桥梁。我们在编写任何一个计算机程序时(无论使用什么编程语言),都不可避免地要进行算法设计。

本实验选取几个典型的趣味算法编程实例,讲解如何通过程序设计解决一些有趣的数学问题,使读者提高通过编程解决实际问题的能力。

课型:新授课

课时:

本章安排2个课时。

教学重点:

重点:通过几个典型的趣味算法编程实例,讲解如何通过程序设计解决一些有趣的数学问题,提高通过编程解决实际问题的能力。

教学难点:

难点:教学难点在于帮助学生清晰理解鞍点、猴子选猴王、汉诺塔问题中复杂的逻辑关系与递归原理,从而构建出高效且准确的算法模型,并能灵活应用于实际场景的问题求解。

教学过程:

教学形式:讲授课,教学组织采用课堂整体讲授和分组演示。

教学媒体:采用启发式教学、案例教学等教学方法。教学手段采用多媒体课件、视频等媒体技术。

板书设计:

本课标题

趣味算法

课次

0.5

授课方式

理论课□讨论课□习题课□其他□

课时安排

2

学分

共2分

授课对象

普通高等院校学生

任课教师

教材及参考资料

1.《Python程序设计实践教程》。

2.本教材配套视频教程及学习检查等资源。

3.与本课程相关的其他资源。

教学基本内容

教学方法及教学手段

课程引入

生活中充满了各种需要巧妙解决的问题,这背后往往离不开趣味算法的支持。假设你在玩一款策略游戏,战场上的形势瞬息万变,若能找到一个特殊位置,既在所在行数值最大,又在所在列数值最小,就如同占据了关键“鞍点”,掌控全局。再比如,古老传说里一群猴子选猴王,它们围成一圈按特定规则报数,最终剩下的那只猴子就是猴王,这其实也隐藏着算法逻辑。还有神秘的汉诺塔问题,几根柱子上大小不一的圆盘,要按规则移到指定位置,看似简单,实则蕴含着递归的智慧。接下来,让我们深入探索鞍点、猴子选猴王、汉诺塔这些趣味算法,学会用巧妙思路解决复杂问题,开启算法世界的奇妙之旅。

参考以下形式:

1.衔接导入

2.悬念导入

3.情景导入

4.激疑导入

5.演示导入

6.实例导入

7.其他形式

实验19趣味算法

实例19-1鞍点

1.题目描述

如果矩阵?A?中存在元素?A[i][j],A[i][j]是第?i?行中最大的元素,又是第?j?列中最小的元素,则称元素?A[i][j]为该矩阵的一个鞍点。

本题要求编写程序,求一个给定的?n?阶矩阵的鞍点。

2.算法设计

先将矩阵转化为列表中嵌套列表的形式,代码形式如下。

foriinrange(n):

s=input()

a.append([int(n)fornins.split()])

求出列表中每一行的最大值,再将这个位置的数字与该列的其他数字进行比较,若其为最小值,则这个值就是鞍点。

3.程序代码

#sl19-1.py

n=int(input())

a=[]

count=0

count1=0

foriinrange(n):

s=input()

a.append([int(n)fornins.split()])

forjinrange(n):

ifcount1==nandcount==n:

break

forkinrange(n):

fork1inrange(n):

ifa[j][k]=a[j][k1]:

count+=1

ifcount==n:

forj1inrange(n):

ifa[j][k]=a[j1][k]:

count1+=1

ifcount1==n:

print({}{}.format(j,k))

break

count1=0

count=0

ifcount1!=nandcount!=n:

print(NONE)

4.运行结果

输入样例如下。

4

1741

4836

1612

0789

输出样例如下。

21

5.思考与讨论

设计算法时要考虑时间复杂度、空间复杂度,应尽量找到

显示全部
相似文档