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

义乌网站建设哪家好外链交易平台

义乌网站建设哪家好,外链交易平台,ps做图下载网站,茂名专业网站建设一、识别递归结构 什么是递归,其核心思想是什么 递归是一个函数直接或间接地调用自身的操作方式。核心思想:递归通常用于把一个复杂的大问题分解成一个或几个相同结构的小问题,直到问题小到可以直接解决。 递归的过程 不断拆解问题&#…

一、识别递归结构

  1. 什么是递归,其核心思想是什么
  • 递归是一个函数直接或间接地调用自身的操作方式。
  • 核心思想:递归通常用于把一个复杂的大问题分解成一个或几个相同结构的小问题,直到问题小到可以直接解决。
  1. 递归的过程
  • 不断拆解问题(递去):把问题越分越小。
  • 触底反弹(归来):遇到最小问题时开始返回结果。
    在这里插入图片描述
  1. 递归的必备条件(如果不满足的话,可能会导致无限循环或栈溢出)
  • 终止条件(Base Case)
    明确递归何时结束,防止无限调用。

  • 递归调用(Recursive Case)
    问题必须能分解为结构相同的子问题。

  • 向终止条件逼近
    每次递归调用必须是问题规模减小(从n次变成n-1次,知道最底层的基准条件)。

  1. 递归适用于什么场景
  • 问题本身可以分解成相同结构的子问题(数学归纳法得到的公式)
    例如:计算阶乘 (1×2×3×…×(n-1)×n)
    def factorial(n):if n == 0:  # 终止条件:0! = 1return 1return n * factorial(n - 1)  # 递归调用:n! = n × (n-1)!
    

这个函数的执行过程:

	factorial(3) = 3 × factorial(2)  = 3 × (2 × factorial(1))  = 3 × (2 × (1 × factorial(0)))  = 3 × (2 × (1 × 1))  = 6
  • 数据本身是递归定义的问题(链表、树)
    例如遍历二叉树

    class TreeNode:def __init__(self, val=0, left=None, right=None):self.val = valself.left = leftself.right = rightdef traverse(root):if root is None:  # 终止条件:空节点returntraverse(root.left)   # 递归左子树print(root.val)      # 访问当前节点traverse(root.right)  # 递归右子树
    

遍历二叉树的执行过程:

	      1/ \2   3/ \4   5遍历顺序:4 → 2 → 5 → 1 → 3
  • 需要回溯或组合尝试所有可能的问题(排序问题)

二、将数学表达式转化为递归函数

  1. 将数学表达式转化为递归函数需要理解递归的两个关键要素:基准条件递归关系。以下是系统化的转换方法:
  • 步骤1:原始的数学表达式
	1/(1×2) - 1/(2×3) + 1/(3×4) - 1/(4×5) + ... ± 1/(n×(n+1))
  • 步骤2:定义通项公式
    观察到第k项为:
	f(k) = (-1)^(k+1) × 1/(k×(k+1))
  • 步骤3:建立 n 和 n-1 项的递推关系
	S(n) = f(1) ± f(2) ± ... ± f(n)S(n) = S(n-1) ± f(n)S(n) = S(n-1) + (-1)^(n+1) × 1/(n×(n+1))
  • 步骤4:确定基准条件(最初的状态)
	S(0) = 0S(1) = 1/2
  • 步骤5:处理符号交替(有些简单的函数的处理可能没有这一步)
    通过奇偶判断实现符号交替:

    if n % 2 == 0:  # 偶数项为负return S(n-1) - term
    else:           # 奇数项为正return S(n-1) + term
    
  • 步骤6:将以上步骤转化为函数 形式

    def recursive_sum(n):# 基准条件if n == 0:return 0elif n == 1:return first_term_value# 计算当前项current_term = calculate_term(n)# 递归关系(根据符号规则调整+-)if is_positive_term(n):return recursive_sum(n-1) + current_termelse:return recursive_sum(n-1) - current_term
    
  1. 处理的关键点
  • 项数处理:递归参数n通常表示项数而非下标
  • 符号处理:通过(-1)^n或奇偶判断实现符号交替
  • 计算效率:注意Python默认递归深度限制(约1000层)
  1. 其他示例练习:斐波那契数列
  • 数学定义:
    1、确定基准:F(0)=0, F(1)=1
    2、确定第n项的公式:F(n)=F(n-1)+F(n-2)
    3、确定前n项和与前n-1项和的关系:S(n)=S(n-1)+F(n)
    4、注意观察是否需要符号转换,也就是数学公式里是否有(-1)^n
    
  • 尝试自己实现斐波那契数列的 第n项 和 前n项和 的递归实现:
    def fib(n):if n == 0:return 0elif n == 1:return 1else:return fib(n-1) + fib(n-2)def fib_sum(n):if n == 0:return 0elif n == 1:return 0+1else:return fib(n)+fib_sum(n-1)
    

通过这种系统化的分解方法,可以将大多数数学表达式转化为递归函数实现。

http://www.dtcms.com/wzjs/215761.html

相关文章:

  • 网站建设套网站优化seo是什么意思
  • 网站建设重点网络营销外包公司
  • asp动态网站制作流程聊石家庄seo
  • 自己做家具网站免费建自己的网站
  • 公司 备案 网站名称东莞疫情最新消息今天新增病例
  • 邢台做网站优化北京营销推广网站建设
  • 免费自助建站哪个网站最好网站域名ip查询
  • html javascript css个人网站seo在哪可以学
  • 国外优秀平面设计网站曼联vs曼联直播
  • 给装修公司做网站怎么开发网站
  • 凡科建站官网电脑版怎么在百度打广告
  • liunx做网站跳转服务器2345网址导航中国最好
  • 全国公共资源交易中心招标网百度搜索排行seo
  • 视频网站策划国际新闻视频
  • 优秀网站设计模板百度seo sem
  • 电子商务网站多少钱黄冈网站推广优化找哪家
  • 小程序建站公司自媒体平台app
  • 怀化二医院网站百度信息流怎么做效果好
  • php企业网站源码推荐信息服务平台有哪些
  • 大型网站建设部署方案360手机助手
  • phpcms v9农业网站模板互联网销售平台
  • 一流的高端企业网站如何点击优化神马关键词排名
  • 如何寻找网站建设需求客户搜索引擎优化哪些方面
  • 青岛网站建设公司在哪口红的推广软文
  • 连云港企业网站制作搜索引擎最新排名
  • 找素材的网站大全如何在百度推广网站
  • html5手机企业网站模板品牌软文范文
  • 广州个人网站备案要多久seo整站优化
  • 唐山做网站公司哪家好关键词语有哪些
  • 做高级电工题的网站推广软件