0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用Python实现所有算法

云深之无迹 来源:云深之无迹 作者:云深之无迹 2022-07-06 16:39 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

第一章的内容其实是求解线性的方程组.

因为微信对公式不太友好(可能是我不会),所以理论的东西我会考虑写成纸质的,之后录制成小视频来呈现,文章内容侧重于算法的实现.其次实现中出现的语法也会讲解.

在这个demo中使用了注解的功能,个人觉得如果想写出健壮得code或者看起来code有点厉害(这属于装逼需求了),可以使用.

Python 注解+参数+返回值小结在一年的年初,我写过一篇相关的文章.

typing是Python3.5中开始新增的专用于类型注解(type hints)的模块,为Python程序提供静态类型检查.

回调函数可以使用类似Callable[[Arg1Type, Arg2Type],ReturnType]的类型注释.

pYYBAGLFSvaADONbAABUwkJhwyM810.jpg

callable也是demo里面使用的

pYYBAGLFSv2ABFWsAAE8TfcOD34313.jpg

根据整洁代码这本书的意思哇,一个好的代码是不言而喻的,本身就在述说着一切,在Python里面是使用的字符串文档.

其次在工程的代码里面,测试是一个不容错过的环节,但是对于一个小的程序不必要写庞大的单元测试,对这个问题Python有更有趣的实现:

doctest是Python自带的一个模块。doctest有两种使用方式:一种是嵌入到python源码中,另外一种是放到一个独立文件。

doctest模块会搜索那些看起来像是Python交互式会话中的代码片段,然后尝试执行并验证结果。

多说无疑,写段代码看看:

poYBAGLFSwOAW0jeAADseiGRTq4865.jpg

注意""""""这个里面的内容

最后的参数是:verbose参数,如果设置为True则在执行测试的时候会输出详细信息。默认是False,表示运行测试时,只有失败的用例会输出详细信息,成功的测试用例不会输出任何信息。

pYYBAGLFSx6AQh6hAABcw4_bnyA201.jpg

一个详细的输出结果

内容回到眼前:“波尔查诺-维尔斯特拉斯定理是指有界数列必有收敛子列。从极限点的角度来叙述致密性定理,就是:有界数列必有极限点。”找到ab之间为0的位置.

poYBAGLFS12AbYUNAABAsxmOe4E291.jpg

导入模块,把函数的框架写一下,注意这里使用了注解,三个参数后两个都是f类型,返回也是f类型.第一个参数是要传递一个函数进去,下面是这个函数的demo的样子.

poYBAGLFS2SAe6mmAABVnd5y4S0082.jpg

这里写一个小函数,也使用一下注解

下面写函数体:

poYBAGLFS2qAIta-AAERhtKf-K8937.jpg

pYYBAGLFS3CAFsv5AABJsaRrLMo241.jpg

一开始就是我们的参数了,这里也有注解

如果里面的任意一个是0,这就是根了,数学问题.

pYYBAGLFS6GAQbWnAABWC_F_ewI418.jpg

如果两个函数乘大于0,会触发一个值错误,因为这就不是一个穿根的样子

pYYBAGLFS6iAOxM-AAClkWCaqfU654.jpg

这段代码其实是含金量最高的代码了,首先我们每次要确定的X位置,先定义,我们使用while循环,它适合一开始不知道次数的循环,但是我们知道它停止的范围,至于为什么是10-7这个,其实我老师说,就是100W/1就和0一样大了.减完以后发现大于0,那么就要继续运算,先要确认一下mid是不是就为零点了,如果是就返回,负责的话,这里就是计算值,下面的交换变量其实很重要,完成了重要局部参数的传递,接着继续二分计算.

pYYBAGLFS6-AIXSyAABqhJQfdFE475.jpg

调用的时候就是这样

pYYBAGLFS8WAOmztAAAVI0q5R_8200.jpg

因为是Callable函数,所以一个短小的匿名函数更适合这样的场景。

审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 算法
    +关注

    关注

    23

    文章

    4817

    浏览量

    98890
  • python
    +关注

    关注

    59

    文章

    4892

    浏览量

    90486

原文标题:Python实现所有算法-二分法

文章出处:【微信号:TT1827652464,微信公众号:云深之无迹】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    使用Python/MyHDL创建自定义FPGA IP

    使用 Python/MyHDL 创建自定义 FPGA IP,与 Vivado 集成,并通过 PYNQ 进行控制——实现软件上的简单硬件设计。
    的头像 发表于 04-09 09:53 533次阅读
    使用<b class='flag-5'>Python</b>/MyHDL创建自定义FPGA IP

    使用PYTHON进行的跨平台仿真

    快速物理光学软件VirtualLab Fusion以其“连接场求解器”方法而自豪,该方法将应用于不同组件上的专用电磁场求解器结合在一起,以实现整个系统的物理光学模拟。这种方法的逻辑扩展不仅是连接软件
    发表于 04-02 08:21

    [VirtualLab] 使用Python运行VirtualLab Fusion光学仿真

    Fusion的简单方法。在本示例中,我们将演示如何使用Python脚本运行光学仿真,以向用户简要概述这种跨平台的仿真能力。 用例概览 文件路径 用户可以在样本文件的文件夹中找到所有文件。包含这些文件
    发表于 03-31 09:39

    [VirtualLab] 使用Python进行跨平台参数扫描

    如何收集结果,这些结果可以通过Python提供的所有功能进一步处理。以光栅为例,严格分析了光栅的衍射效率。 **此用例展示了… ** 在哪里找文件 README文件 **准备Python
    发表于 03-31 09:36

    Python运行本地Web服务并实现远程访问

    本文介绍使用Python搭建本地Web服务并结合 ZeroNews 实现公网访问。
    的头像 发表于 02-06 11:39 466次阅读
    <b class='flag-5'>Python</b>运行本地Web服务并<b class='flag-5'>实现</b>远程访问

    1688店铺所有商品API使用指南

    店铺所有商品 API 的使用方法,帮助开发者快速实现接口对接。 一、摘要 1688 店铺所有商品 API 是阿里巴巴开放平台为开发者提供的核心业务接口之一,主要用于查询 1688 商家店铺下的商品列表及商品基础信息,包括商品
    的头像 发表于 12-22 13:49 1474次阅读

    没有专利的opencv-python 版本

    所有 官方发布的 opencv-python 核心版本(无 contrib 扩展)都无专利风险——专利问题仅存在于 opencv-contrib-python 扩展模块中的少数算法(如
    发表于 12-13 12:37

    Python中借助NVIDIA CUDA Tile简化GPU编程

    模型更高的层级来实现算法。至于如何将计算任务拆分到各个线程,完全由编译器和运行时在底层自动处理。不仅如此,tile kernels 还能够屏蔽 Tensor Core 等专用硬件的细节,写出的代码还能
    的头像 发表于 12-13 10:12 1592次阅读
    在<b class='flag-5'>Python</b>中借助NVIDIA CUDA Tile简化GPU编程

    SM4算法实现分享(一)算法原理

    ,Xi、Yi、rki为字,i=0,1,2,…,31。则本算法的加密实现为: 本算法的解密实现与加密实现结构是相同的,不同的只是提供的轮
    发表于 10-30 08:10

    复杂的软件算法硬件IP核的实现

    具体方法与步骤 通过 C 语言实现软件算法,并验证了算法的有效性以后,就可以进行算法的 HDL 转化工作了。通过使用 Altium Designer 的 CHC 编译器(C to H
    发表于 10-30 07:02

    TCORDIC算法实现正余弦函数

    TCORDIC算法,由低延迟CORDIC算法和Taylor展开组成。Taylor展开计算作为CORDIC算法的补充,能够结合CORDIC算法和Taylor展开方式来计算浮点正余弦函数,
    发表于 10-29 06:30

    数据滤波算法的具体实现步骤是怎样的?

      数据滤波算法在电能质量在线监测装置中的具体实现,需围绕 “ 数据采集→预处理→算法执行→参数适配→效果验证→结果输出 ” 的全流程展开,核心是结合装置硬件特性(采样率、ADC 精度)和干扰类型
    的头像 发表于 10-10 16:45 1131次阅读

    termux调试python猜数字游戏

    用termux做一个猜数字游戏 下面是在Termux中创建猜数字游戏的步骤及完整实现方案,结合Python实现(最适配Termux环境): ? 一、环境准备(Termux基础配置) 1.
    发表于 08-29 17:15

    基于FPGA实现FOC算法之PWM模块设计

    哈喽,大家好,从今天开始正式带领大家从零到一,在FPGA平台上实现FOC算法,整个算法的框架如下图所示,如果大家对算法的原理不是特别清楚的话,可以先去百度上学习一下,本教程着重介绍
    的头像 发表于 07-17 15:21 3826次阅读
    基于FPGA<b class='flag-5'>实现</b>FOC<b class='flag-5'>算法</b>之PWM模块设计

    基于FPGA的压缩算法加速实现

    本设计中,计划实现对文件的压缩及解压,同时优化压缩中所涉及的信号处理和计算密集型功能,实现对其的加速处理。本设计的最终目标是证明在充分并行化的硬件体系结构 FPGA 上实现算法时,可
    的头像 发表于 07-10 11:09 2702次阅读
    基于FPGA的压缩<b class='flag-5'>算法</b>加速<b class='flag-5'>实现</b>