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

网站建设的利益自建网站

网站建设的利益,自建网站,单位微信公众号怎么创建,网站专题页课程:B站大学 记录python学习,直到学会基本的爬虫,使用python搭建接口自动化测试就算学会了,在进阶webui自动化,app自动化 递归算法 递归的基本原则递归的使用作业小tips:斐波那契数列阶乘快速排序 实践是检…

课程:B站大学
记录python学习,直到学会基本的爬虫,使用python搭建接口自动化测试就算学会了,在进阶webui自动化,app自动化

递归算法

  • 递归的基本原则
    • 递归的使用
    • 作业小tips:
      • 斐波那契数列
      • 阶乘
      • 快速排序
  • 实践是检验真理的唯一标准


递归的基本原则

递归函数通常遵循以下原则:

  • 定义基本情况 确定一个或多个输入的特殊情况,当满足这些条件时,递归函数将直接返回结果而不再调用自身。
  • 减小问题规模 通过调用自身来解决一个规模更小的问题,这样每次递归调用都在问题规模上取得了进展。
    也就是需要一个已定义好的规则来使其它非基本的情况转化为基本情况。
  • 终止条件 递归函数必须包含能够导致函数不再递归调用的条件,以避免无限递归。

递归的使用

数学中有一个比较经典的递归算式就是求阶乘

一个正整数的阶乘 factorial 是所有小于及等于该数的正整数的积,并且 0 的阶乘为 1。自然数 n 的阶乘写作 n!。

对阶乘的定义进行分析:

首先定义 f(n) 为阶乘函数。它的结果就是阶乘计算之后的值。
从定义中能得到基本情况为: f(0) = 1, f(1) = 1
其它情况: f(2) = 21 = 2f(1),f(3) = 321 = 3*f(2) 即 f(n) = f(n-1) * n
示例:

def f(n):"""实现计算 n 的阶乘return:n 阶乘计算之后的值"""if n == 0 or n == 1:# 对应基本情况return 1return f(n - 1) * n  # 对应递归情况

大多数情况下的递归操作都可以使用循环所替代。

在使用递归时,要注意避免陷入无限调用而产生的内存溢出。

作业小tips:

斐波那契数列

编写一个Python程序,使用递归算法,生成并输出斐波那契数列的前n项,其中n是用户指定的正整数。斐波那契数列,又称黄金分割数列,指的是:1、1、2、3、5、8、13、21、34…从第三个数开始,每个数字都是前两个数字之和。

def fibonacci(n):if n <= 0:return 0elif n == 1 or n == 2:return 1else:return fibonacci(n - 1) + fibonacci(n - 2)# 计算斐波那契数列的第 10 项
n = 10
fib_result = fibonacci(n)
print(f"斐波那契数列的第 {n} 项为:{fib_result}")
def fibonacci(n): 这是定义一个名为 fibonacci 的函数,它接受一个参数 n,用于计算斐波那契数列的第 n 项。if n <= 0: 这是一个条件判断语句,用于检查 n 是否小于等于 0return 0 如果 n 小于等于 0,返回 0。elif n == 1 or n == 2: 这是另一个条件判断语句,检查 n 是否等于 12return 1 如果 n 等于 12,返回 1return fibonacci(n - 1) + fibonacci(n - 2) 这是递归的部分。当 n 大于 2 时,递归地调用 fibonacci 函数来计算第 n-1 项和第 n-2 项的和,然后返回结果。fib_result = fibonacci(n) 调用 fibonacci 函数,传入参数 n,计算斐波那契数列的第 10 项。print(f"斐波那契数列的第 {n} 项为:{fib_result}") 打印计算结果,显示斐波那契数列的第 10 项的值。

阶乘

编写一个Python程序,使用递归算法,计算给定正整数n的阶乘。阶乘的定义是从1到n所有正整数的乘积。例如3的阶乘为123=6。
def factorial(n):

    if n == 0 or n == 1:return 1else:return n * factorial(n - 1)n = int(input("请输入要计算阶乘的正整数:"))
result = factorial(n)
print(f"{n}的阶乘是:{result}")

快速排序

思路:

  • 首先选择一个基准元素,通常是选择待排序列表的第一个元素。
  • 将列表分成两部分,小于基准元素的元素放在左边,大于基准元素的元素放在右边。这个过程称为分区(partition)。
  • 递归地对左右两个分区进行快速排序。也就是将左边的分区作为新的子列表,再次选择基准元素,并进行分区操作。对右边的分区也是同样的操作。
  • 递归的结束条件是分区中只有一个元素或为空,此时分区已经是有序的。
  • 最后将所有的分区合并起来,即可得到排好序的列表。
def quickSort(arr):if len(arr) <= 1:return arrpivot = arr[len(arr) // 2]  # 选取数组中间元素作为基准值left = [x for x in arr if x < pivot]  # 小于基准值的部分放在左边列表middle = [x for x in arr if x == pivot]  # 等于基准值的部分放在中间列表right = [x for x in arr if x > pivot]  # 大于基准值的部分放在右边列表return quickSort(left) + middle + quickSort(right)  # 合并结果返回

在这里插入图片描述

实践是检验真理的唯一标准

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

相关文章:

  • 做的好看的网站站长工具查询域名
  • 龙岗网站建设_公司推广下载百度搜索
  • 郑州网站建设找伟置上海关键词优化公司bwyseo
  • 深圳优定软件网站建设十大成功营销策划案例
  • asp.net mvc5网站开发之美北京seo网站管理
  • 长春网站建设dbd3某网站搜索引擎优化
  • 新乡百度网站推广工具seo快速软件
  • 成都家具企业网站建设营销顾问
  • 兰州网站设计哪个平台好网络营销的有哪些特点
  • 做智能网站系统下载地址2024年阳性最新症状
  • 河北省建设机械协会是真的网站吗购买模板建站
  • 国外房屋设计网站长沙网络推广网站制作
  • 北京做网站网络公司b站怎么推广
  • 阿里巴巴网站更新怎么做佛山网络排名优化
  • 福州网站开发风格seo优化员
  • 关于网站制作报价个人网站模板建站
  • 掘金网站建设企业文化理念
  • 杭州品牌网站建设合肥网站排名提升
  • 酒类公司网站模板保定seo推广外包
  • 做led开关电源上什么网站好营销型网站优化
  • 苏州建网站哪家百度云登录入口
  • linux搭建个人网站域名停靠
  • 安徽网站建设 网新大数据培训包就业靠谱吗
  • 做个网站要钱吗搜索引擎优化内容包括哪些方面
  • 天津哪里能做网站高权重友情链接
  • 网站开发工具有哪些线上广告推广
  • 个人网站做企业备案吗百度seo关键词优化排行
  • 宁波易通宁波网站建设网络营销包括几个部分
  • dedecms产品展示织梦模板(营销型网站)广州seo
  • 接项目做的网站网站外链平台