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

    文章

    4760

    浏览量

    97144
  • python
    +关注

    关注

    57

    文章

    4857

    浏览量

    89585

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    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

    AES加解密算法逻辑实现及其在蜂鸟E203SoC上的应用介绍

    这次分享我们会简要介绍AES加解密算法的逻辑实现,以及如何将AES算法做成硬件协处理器集成在蜂鸟E203 SoC上。 AES算法介绍 AES算法
    发表于 10-29 07:29

    TCORDIC算法实现正余弦函数

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

    如何使用恢复算法实现开平方运算

    本文主要描述如何使用恢复算法实现开平方运算。 简介 开平方的恢复算法其实与除法的恢复算法十分相似。首先我们假设X为输入的操作数(它应该为正数),而他的平方根可以表示为Qn=0.q1
    发表于 10-24 13:33

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

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

    termux调试python猜数字游戏

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

    termux如何搭建python游戏

    termux如何搭建python游戏 Termux搭建Python游戏开发环境的完整指南 一、Termux基础环境准备 Termux是一款无需root即可在安卓设备上运行的Linux终端
    发表于 08-29 07:06

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

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

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

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

    python入门圣经-高清电子书(建议下载)

    此资料内容是一本针对所有层次的Python 读者而作的Python 入门电子书。 全书分两部分:第一部分介绍用Python 编程所必须了解的基本概念,包括matplotlib、NumP
    发表于 04-10 16:53

    FOC 算法实现永磁同步电机调整指南

    本文档介绍了使用 FOC 算法实现永磁同步电机 (Permanent Magnet SynchronousMotor,PMSM)调整所需的步骤和设置,该算法如 AN1078《PMSM 电机的无传感器
    发表于 03-03 01:53

    PID控制算法的C语言实现:PID算法原理

    在工业应用中 PID 及其衍生算法是应用最广泛的算法之一,是当之无愧的万能算法,如果能够熟练掌握 PID 算法的设计与实现过程,对于一般的研
    发表于 02-26 15:24

    使用Python实现xgboost教程

    使用Python实现XGBoost模型通常涉及以下几个步骤:数据准备、模型训练、模型评估和模型预测。以下是一个详细的教程,指导你如何在Python中使用XGBoost。 1. 安装XGBoost
    的头像 发表于 01-19 11:21 2214次阅读

    TimSort:一个在标准函数库中广泛使用的排序算法

    排序算法呢? 本文将带你走进 TimSort,一个在标准函数库中广泛使用的排序算法。 这个算法由工程师 Tim Peters 于 2001 年专为 Python 设计,并自
    的头像 发表于 01-03 11:42 954次阅读