资源简介 第四章 计算与问题解决知识点汇总:计算机解决问题的过程:分析问题——》设计算法——》编写代码——》调试运行算法:算法解决问题的过程和方法,也是一种数学模型。算法描述:自然语言、流程图、伪代码、PAD图等算法5大特征:有穷性:有限步骤后能终止。确切性:每一次运算都有明确的定义,具有无二义性。输入:有0个或多个输入。输出:一定要有输出。可行性:可以在有限时间内完成。算法的三种结构:顺序结构、分支结构和循环结构。常见算法:枚举法(穷举法)、解析法、二分查找法、顺序查找法、哈希查找法、迭代算法和递归算法等。枚举法(穷举法):把所有可能的答案一一列举,找到合适的保留,不合适的就丢弃。解析法:通过代数数学公式计算的得到答案。二分查找法:必须是有序的序列,折半查找。迭代算法:每一次对过程的重复称为迭代。递归算法:直接或间接的调用自身的方法称为递归。本章用到的模块:numpy:科学计算包,包含很多数学函数。matplotlib:绘图库。Python中加载模块的方法:import numpy 或 import numpy as np #加载numpy模块并取名npimport matplobtlib.pyplot 或 import matplobtlib.pyplot as plt #加载matplobtlib.pyplot模块并取名plt习题检测:1.图一程序 是算法 结构;2.图二自定义函数名称 。3.图三程序使用了 算法。4.图四程序使用了 算法。5.以下关于算法中输入、输出的描述正确的是( )。A.算法可以没有输入,表示该算法不涉及任何数据信息B.算法可以没有输出,表示该算法运行结果为“无解”C.算法必须要有输入,否则算法无法进行D.算法至少要有一个输出6.采用盲目搜索的方法,在搜索的过程中,对所得的结果逐一筛选,排除不符合要求的结果,保留那些符合要求的结果,这种方法叫做( )。A.解析法 B.递推法 C.枚举法 D.选择法7.在软件的生命周期中,明确软件系统具备哪些功能的阶段是( )。A.可行性分析 B.需求分析 C.概要设计 D.详细设计8.图中代码输入是()A.输入是1 B.输入是s C.输入是0 D.没有输入9.有N根小棒(N是偶数),没根小棒长1厘米,要将这些小棒拼成矩形,怎样拼才能使其面积最大?分析:用什么算法解决问题?课本程序分析课本88页寻找“开关对应关系”流程图课本p90页 寻找被删的ID号课本p91页课本P95页利用python绘制正弦曲线y1=sin(x)、y2=sin(-x)、y3=sin(2*x)/2程序import numpy as np #加载numpy模块并取别名为npimport matplotlib.pyplot as plt #加载matplotlib.pyplot并取别名为pltx=np.arange(0,2*np.pi,0.01) #列表x在0到2π之间,毎隔0.01取一个点y1=np.sin(x) #求sin(x)对应的列表y1的值y2=np.sin(-x) #求sin(-x)对立的列表y2的值y3=np.sin(2*x)/2 #求sin(2x)/2对应的列表y3的值plt.plot(x,y1) #绘制sin(x)的图像plt.plot(x,y2) #绘制sin(-x)的图像plt.plot(x,y3) #绘制sin(2x)/ 2的图像plt.title(‘sin(x)’) #设置图像标题plt.xlabel(‘X’) #设置X轴标题plt.ylabel(‘Y’) #设置Y轴标题plt.show( ) #将绘制的函数图像窗口显示出来课本p98页Python程序代码如下:def fib(n):#迭代求Fibonacci数列f2=f1=1 #第1个月、第2个月初始值的设定for i in range(3,n+1): #从第3个月至第n个月依次计算f1,f2=f2,f1+f2return f2n=int(input('输入需要计算的月份数:'))print('兔子总对数为:',fib(n)) #输出最终值课本p102页 二分查找x=int(input("请输入要查找的1000以内的整数:"))step=0flag1=1flag2=1000while(flag1<=flag2):mid=(flag1+flag2)//2if mid>x:flag2=mid-1elif midflag1=mid+1else:breakprint("查找次数为:",step)课本拼104页汉诺塔def hanno(n,s,m,t):#定义一个函数,n层塔,将盘子从s借助m移动到tif n==1:print(s,'-->',t) #将一个盘子从s移动到telse:hanno(n-1,s,t,m) #将前n-1个盘子从s移动到m上print(s,'-->',t) #将最底下的最后一个盘子从s移动到t上hanno(n-1,m,s,t) #将m上的n-1个盘子移动到t上#主程序n=int(input('请输入汉诺塔的层数:'))hanno(n,'A','B','C') 展开更多...... 收起↑ 资源预览