1.定义:迭代法也称辗转法,是一种不断用变量的旧值递推新值的过程,跟迭代法相对应的是直接法(或者称为一次解法),即一次性解决问题。迭代算法是用计算机解决问题的一种基本方法,它利用计算机运算速度快、适合做重复性操作的特点,让计算机对一组指令(或一定步骤)进行重复执行,在每次执行这组指令(或这些步骤)时,都从变量的原值推出它的一个新值,迭代法又分为精确迭代和近似迭代。比较典型的迭代法如“二分法”和"牛顿迭代法”属于近似迭代法。

例题1:求1+2+3+......+100的和

分析:要想求前100项的和,可以先求出前第一项的和,再求出前第二项的和,,,s变量中的值不断迭代,直到将第100个数加入到s变量中。

代码如下:

s=0
for i in range(1,101):s=s+i
print(s)

例题2:一个正整数的阶乘是所有小于及等于该数的正整数的积,并且0的阶乘为1,即n!=1×2×3×…×(n-1)×n。现求正整数n的阶乘。

分析:

1.增加一个变量,存储结果,做好初始赋值。

2.使用计数循环结构for语句进行循环,使用range()函数生成一个数列,指定函数初始值为1,范围值为n+1,变化增量为1时可以省略。

3.在循环体内,进行迭代,并将计算结果作为下一次的初始值。

4.循环结束后,打印输出结果

代码如下:

num = int(input("请输入一个数字: "))
f=1 #赋初值
for i in range(1,num+1):f = f*i
print("%d 的阶乘为 %d" % (num, f))

例题3:兔子数列(斐波那契数列)

有对兔子,从出生后的第3个月起每个月都生一对兔子。 小兔子长到第3个月后每个月又生一对兔子, 假设所有的兔子都不死,问30个月后的兔子总对数为多少?

代码如下:

def fibo(n):f1=f2=1for i in range(3,n+1):f1,f2=f2,f1+f2return f2
print(fibo(30))

例题4:输入两个数,求出这两个数的最大公约数。

代码如下:

num1=int(input('请输入第一个正整数:'))
num2=int(input('请输入第二个正整数:'))
m = max(num1, num2)
n = min(num1, num2)
r = m % n
while r != 0:m = nn = rr = m % n
print('这两个数的最大公约数为:',   n)
input("运行完毕,请按回车键退出...")

使用自定义函数改写:

def gcd(m,n):r = m % nwhile r != 0:m = nn = rr = m % nnum1=int(input('请输入第一个正整数:'))
num2=int(input('请输入第二个正整数:'))
print('这两个数的最大公约数为:',gcd(num1,num2))
input("运行完毕,请按回车键退出...")

python算法二:迭代法相关推荐

  1. 基于Python实现Jacobi迭代法、Gauss-Seidel迭代法和SOR法方程组(二)

    标题基于Python实现Gauss-Seidel迭代法方程组计算(二) 一.首先根据习题的方程完成下面的代码 x11=round(-0.4x2-0.2x3-2.4,7) x22=round(0.25x ...

  2. python:实现雅可比迭代法算法(附完整源码)

    python:实现雅可比迭代法算法 from __future__ import annotationsimport numpy as np from numpy import float64 fro ...

  3. python算法书籍-有哪些用 Python 语言讲算法和数据结构的书?

    1.Python数据结构篇 数据结构篇主要是阅读[Problem Solving with Python](Welcome to Problem Solving with Algorithms and ...

  4. python算法完整教程专栏完整目录

    python算法完整教程专栏完整目录 专栏说明如下 专栏目录 专栏说明如下 内容:python算法完整教程 数量:692篇博文(2023年2月15日截止) 更新时间至:2023年2月15日(后续加上去 ...

  5. [Python人工智能] 二十二.基于大连理工情感词典的情感分析和情绪计算

    从本专栏开始,作者正式研究Python深度学习.神经网络及人工智能相关知识.前一篇文章分享了CNN实现中文文本分类的过程,并与贝叶斯.决策树.逻辑回归.随机森林.KNN.SVM等分类算法进行对比.这篇 ...

  6. Python可以调用Gpu吗_加快Python算法的四个方法:Numba篇

    CDA数据分析师 出品 相信大家在做一些算法经常会被庞大的数据量所造成的超多计算量需要的时间而折磨的痛苦不已,接下来我们围绕四个方法来帮助大家加快一下Python的计算时间,减少大家在算法上的等待时间 ...

  7. 这可能是史上最全的Python算法集!

    来源 | CSDN(ID:CSDNnews ) 本文是一些机器人算法(特别是自动导航算法)的Python代码合集. 其主要特点有以下三点:选择了在实践中广泛应用的算法:依赖最少:容易阅读,容易理解每个 ...

  8. 看例子,学 Python(二)

    看例子,学 Python(二) 看例子,学 Python(一) 看例子,学 Python(三) 模块 文件 mymath.py 定义了函数 fib 和 fac,mymath.py 就是一个模块. A ...

  9. 使用pytorch从零开始实现YOLO-V3目标检测算法 (二)

    原文:https://blog.csdn.net/u011520516/article/details/80212960 博客翻译 这是从零开始实现YOLO v3检测器的教程的第2部分.在上一节中,我 ...

最新文章

  1. python读取配置文件获取所有键值对_python笔记14-读取yaml配置文件(pyyaml)
  2. 波士顿动力的仓库机器人Strentch来了,挑战每小时搬运800个箱子
  3. 使用Entity Framework和WCF Ria Services开发SilverLight之4:Map之主外键映射
  4. 请汇编高手注释的CompareText
  5. signature=5edb6549fd9da7abd1cea3d5008f5c15,IMPLEMENTING INVERTED MASTER-SLAVE 3D SEMICONDUCTOR STACK
  6. 光立方原理讲解_90%人不理解什么是防眩光射灯 防昡晕 防炫光,。怎么选项led防眩灯...
  7. Java异常处理: 缺包 ClassNotFound javax/xml/bind/JAXBException
  8. 分组函数group by和Oracle中分析函数partition by的用法以及区别
  9. leetcode第21题: 合并两个有序链表
  10. linux安装jdk和tomcat7.0
  11. 上线一套 BI 系统到底需要多少钱???
  12. 数字资产投资论坛暨全球数字资产领袖委员会成立大会1月16日将在纽约举行
  13. C语言输出一个19行实心菱形,C语言打印菱形
  14. Sigma Function
  15. 4.File类、Lambda表达式、JAVA IO
  16. python头像教程_教你用 Python 生成一张全体微信好友的头像墙
  17. 小学生也能看懂的海伦公式推导
  18. CAD图纸无法正常缩放怎么办?如何解决?
  19. 飞凌嵌入式助力智慧医疗,解析i.MX8MM在麻醉系统中的应用方案
  20. 实验5 Spark SQL编程初级实践

热门文章

  1. caffe fine-tune策略
  2. Vue Vue cli
  3. 回顾我两个月面试阿里,携程,小红书,美团,网易等等(Java岗)
  4. Zynq动态更新FPGA比特流
  5. 数据化管理之企业对标管理与标杆选择
  6. ubuntu16.04下使用YOLOV3训练自己做的VOC数据集(VOC数据集制作+模型训练步骤+训练参数解析和问题解决+训练日志可视化(loss、IOU)+模型测试(单张、摄像头、批量测试))
  7. 猿创征文|最近抖音女友早安很火,那我也来跟个风,教程来咯(Python版)
  8. 如何使用画图工具绘制思维导图
  9. linux 终端发出哔声,在Linux Gnome系统上关闭终端的硬件蜂鸣声的方法
  10. 【matlab 图像处理】离散傅里叶变换离散余弦变换K-L变换小波变换