当前位置: 首页 > news >正文

网站制作公司兴田德润i在哪里minisite网站案例

网站制作公司兴田德润i在哪里,minisite网站案例,网站建设课本,新浪网页版入口首先我们要把递归和迭代这两个思想给剖析透彻,用最简单的话语来说,迭代就是简单的事重复做来完成一件事,递归便是把一个大问题分解成若干小问题然后针对于小问题逐步解决从而完成一件事。 ##迭代 迭代 是一种重复执行某个任务的控制结构。在…

首先我们要把递归和迭代这两个思想给剖析透彻,用最简单的话语来说,迭代就是简单的事重复做来完成一件事,递归便是把一个大问题分解成若干小问题然后针对于小问题逐步解决从而完成一件事。

##迭代

迭代 是一种重复执行某个任务的控制结构。在迭代中,程序会在满足一定的条件下重复执行某段代码,直到这个条件不再满足。

1.for循环是最常见的迭代形式之一,适合预迭代的次数知道时使用

代码示例-详细的解释

def for_loop(n: int):"""for 循环"""res = 0# 循环求和 1, 2, ..., n-1, nfor i in range(1, n + 1):#对于range函数,当只有两个参数的时候左闭右开的区间res += ireturn res

代码运行时的图例:

2.while循环-跟for循环一样,也是实现迭代的一种方式

在每次while循环下都先要进行条件的判断,为真才会继续执行,为假则会退出循环。

代码示例:

def while_loop(n: int):"""while 循环"""res = 0i = 1  # 初始化条件变量# 循环求和 1, 2, ..., n-1, nwhile i <= n:res += ii += 1  # 更新条件变量return res

小结,总的来说,for循环的结构更加紧凑,而对于while循环则更加灵活,我们则更具具体的需求而进行灵活地选择。

3.嵌套循环-我们在一个循环结构中嵌套另一个循环-for循环为例

代码示例:

这里我们需要解释一下这个f-string的用法:

f-string,亦称为格式化字符串常量(formatted string literals),是Python3.6新引入的一种字符串格式化方法,该方法源于PEP 498 – Literal String Interpolation,主要目的是使格式化字符串的操作更加简便。f-string在形式上是以 f 或 F 修饰符引领的字符串(f'xxx' 或 F'xxx'),以大括号 {} 标明被替换的字段;f-string在本质上并不是字符串常量,而是一个在运行时运算求值的表达式:

1.f-string用大括号 {} 表示被替换字段,其中直接填入替换内容

2.f-string的大括号 {} 可以填入表达式或调用函数,Python会求出其结果并填入返回的字符串内

3.f-string大括号内所用的引号不能和大括号外的引号定界符冲突,可根据情况灵活切换 ' 和 ",若 ' 和 " 不足以满足要求,还可以使用 ''' 和 """

4.大括号外的引号还可以使用 \ 转义,但大括号内不能使用 \ 转义

5.f-string大括号外如果需要显示大括号,则应输入连续两个大括号 {{ 和 }}

6.上面提到,f-string大括号内不能使用 \ 转义,事实上不仅如此,f-string大括号内根本就不允许出现 \。如果确实需要 \,则应首先将包含 \ 的内容用一个变量表示,再在f-string大括号内填入变量名

def nested_for_loop(n: int):"""双层 for 循环"""res = ""# 循环 i = 1, 2, ..., n-1, nfor i in range(1, n + 1):# 循环 j = 1, 2, ..., n-1, nfor j in range(1, n + 1):res += f"({i}, {j}), "return res

对应的数量级根据循环的嵌套的次数呈现出n次的增长,一次循环o(n),二层循环o(n^2),三次循环o(n^3)依次按照次方增加。

##递归-通过调用自身函数来解决问题

 

  1. :程序不断深入地调用自身,通常传入更小或更简化的参数,直到达到“终止条件”。
  2. :触发“终止条件”后,程序从最深层的递归函数开始逐层返回,汇聚每一层的结果。

而从实现的角度看,递归代码主要包含三个要素。

  1. 终止条件:用于决定什么时候由“递”转“归”。
  2. 递归调用:对应“递”,函数调用自身,通常输入更小或更简化的参数。
  3. 返回结果:对应“归”,将当前递归层级的结果返回至上一层。da
  4. 代码示例:
    def recur(n: int):"""递归"""# 终止条件if n == 1:return 1# 递:递归调用res = recur(n - 1)# 归:返回结果return n + res
    

    代码的整个过程的示例:

##总结

迭代:“自下而上”地解决问题。从最基础的步骤开始,然后不断重复或累加这些步骤,直到任务完成。--在循环中模拟求和过程,从 1 遍历到 n,每轮执行求和操作,即可求得 f(n) 。

递归:“自上而下”地解决问题。将原问题分解为更小的子问题,这些子问题和原问题具有相同的形式。接下来将子问题继续分解为更小的子问题,直到基本情况时停止(基本情况的解是已知的)。--将问题分解为子问题 f(n)=n+f(n−1) ,不断(递归地)分解下去,直至基本情况 f(1)=1 时终止。

##关于递归的理解

##尾递归-如果函数在返回前的最后一步才进行递归调用,则该函数可以被编译器或解释器优化,使其在空间效率上与迭代相当。

尾递归--递归调用是函数返回前的最后一个操作,这意味着函数返回到上一层级后,无需继续执行其他操作,因此系统无需保存上一层函数的上下文。

代码示例:

def tail_recur(n, res):"""尾递归"""# 终止条件if n == 0:return res# 尾递归调用return tail_recur(n - 1, res + n)

图例:

##递归树--当处理“分治类”问题的时候,递归往往比迭代更加容易理解和代码的可读性更好

斐波那契数列为例:

代码示例:

def fib(n: int):"""斐波那契数列:递归"""# 终止条件 f(1) = 0, f(2) = 1if n == 1 or n == 2:return n - 1# 递归调用 f(n) = f(n-1) + f(n-2)res = fib(n - 1) + fib(n - 2)# 返回结果 f(n)return res

图例:

本质上看,递归体现“将问题分解为更小子问题”的思维范式,这种分治策略是至关重要的。

##“分治”思想的重要性:

1.从算法角度看,搜索、排序、回溯、分治、动态规划等许多重要算法策略都直接或间接地应用这种思维方式。

2.从数据结构角度看,递归天然适合处理链表、树和图的相关问题,因为它们非常适合用分治思想进行分析。

http://www.yayakq.cn/news/481669/

相关文章:

  • 织梦网站自适应怎么做怎么仿网站链接
  • 一条龙网站建设哪家专业永康电子商务网站建设
  • php除了做网站重庆是哪个省份的
  • 做网站推广方法系统之家官网
  • 国内网页设计网站python微信小程序开发教程
  • 广州做网站那家好企事业单位社区
  • 手机单页网站教程郑州网站优化价格
  • 备案 网站名称什么用做网站推广可行吗
  • 外包网站建设哪家好湛江市企业网站seo点击软件
  • 推广自身网站急招钟点工4小时220元
  • 企业网站建设与管理作业初次建设网站的技巧
  • 万户高端网站建设搜索引擎论文3000字
  • 国外设计网站参考网络服务提供者发现未成年通过网络发布
  • wordpress手机颜色福州seo网站推广优化
  • 松岗网站建设公司discuz wordpress主题
  • 手机网站 栏目定制绵阳网站改版
  • 网站更换服务器如何做镜像淘宝网店营销策划方案
  • 新开传奇网站999新服网邯郸建筑公司
  • 深圳专业网站设计公司qq在线网站代码生成
  • 如何进入官方网站不用编程做APP和响应式网站
  • 湖南做电商网站需要什么条件营销推广型网站价格
  • 263云通信官方网站免费咨询兽医
  • 免费刷网站百度关键词做完整的网站设计需要的技术
  • wordpress 搜索结果wordpress结构优化插件
  • 公共法律服务网站平台建设预算各地好的深圳影视广告
  • 网站数据库制作wordpress本地调试慢
  • 成都网站建设优化公司电话wordpress注册验证邮箱
  • 怎样做o2o网站韶关网站建设第一品牌
  • html 网站模板武昌做网站公司
  • 个人主页网站模板免费微信群如何推广网站建设