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

    文章

    4458

    浏览量

    90766
  • python
    +关注

    关注

    51

    文章

    4678

    浏览量

    83477

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

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

收藏 人收藏

    评论

    相关推荐

    通过Python脚本实现WIFI密码的自动猜解

    本文将记录学习下如何通过 Python 脚本实现 WIFI 密码的自动猜解。
    的头像 发表于 01-25 10:46 751次阅读
    通过<b class='flag-5'>Python</b>脚本<b class='flag-5'>实现</b>WIFI密码的自动猜解

    python打印出abcd的所有排列组合

    如何使用Python生成"abcd"的所有排列组合,我们首先需要了解排列和组合的概念。排列是一组元素的有序排列,而组合是一组元素的无序选择。 为了打印出"abcd"的所有排列组合,我们可以使用递归函数来
    的头像 发表于 11-29 16:29 444次阅读

    怎么在Python实现截图功能

    操作。 今天Python实用宝典就来讲讲怎么在Python实现截图功能,以下教程默认您已经安装好了Python哦,没有的话见这个教程, pytho
    的头像 发表于 11-03 15:32 512次阅读
    怎么在<b class='flag-5'>Python</b>中<b class='flag-5'>实现</b>截图功能

    基于Python实现随机森林算法

    机器学习算法是数据挖掘、数据能力分析和数学建模必不可少的一部分,而随机森林算法和决策树算法是其中较为常用的两种算法,本文将会对随机森林算法
    的头像 发表于 09-21 11:17 663次阅读
    基于<b class='flag-5'>Python</b><b class='flag-5'>实现</b>随机森林<b class='flag-5'>算法</b>

    不可错过!人工神经网络算法、PID算法Python人工智能学习等资料包分享(附源代码)

    理论的研究,算法编程的实现,很多个算法都后续写了续集,如第二个算法:Dijkstra算法,便写了4篇文章。而红黑树系列,则更是最后写了6篇文
    发表于 09-13 16:41

    如何在biquads 1.0版中使用CMSIS-DSP的Python包装

    本指南提供了一个简单的示例,说明如何使用CMSIS-DSP Python包装器以及如何用Python语言表示CMSIS-DSPAPI。 嵌入式系统上的信号处理算法通常通过使用在科学计算环境中开发
    发表于 08-28 06:30

    Python实现OpenCV的安装与使用

      本文实例讲述了 Python 实现 OpenCV 的安装与使用。分享给大家供 大家参考,具体如下:  由于下一步要开始研究下深度学习,而深度学习领域很多的算法和应 用都是用 Python
    发表于 07-20 11:46 7次下载

    Python怎么实现自动驾驶

    一、安装环境 gym是用于开发和比较强化学习算法的工具包,在python中 安装gym库和其中子场景都较为简便。 安装gym: pip install gym 安装自动驾驶模块,这里使用Edouard Leurent发布在github上的包highway-en
    发表于 06-07 14:35 0次下载
    <b class='flag-5'>Python</b>怎么<b class='flag-5'>实现</b>自动驾驶

    [源代码]Python算法详解

    [源代码]Python算法详解[源代码]Python算法详解
    发表于 06-06 17:50 0次下载

    Python实现自动驾驶

    今天来一个好玩一点的,汽车已经能够自动驾驶了,Python怎么能没有呢?这不,必须安排上。 一、安装环境 gym是用于开发和比较强化学习算法的工具包,在python中安装gym库和其中子场景都较为
    发表于 06-06 10:43 1次下载
    <b class='flag-5'>Python</b><b class='flag-5'>实现</b>自动驾驶

    基2FFT的verilog代码实现及仿真

    上文基2FFT的算法推导及python仿真推导了基2FFT的公式,并通过python做了算法验证,本文使用verilog实现8点基2FFT的
    的头像 发表于 06-02 12:38 702次阅读
    基2FFT的verilog代码<b class='flag-5'>实现</b>及仿真

    基于python人工智能算法的五官识别设计资料

    基于python人工智能算法的五官识别设计资料
    发表于 05-29 09:12 3次下载

    如何在 Python 中安装和使用顶级聚类算法

    有许多聚类算法可供选择,对于所有情况,没有单一的最佳聚类算法。相反,最好探索一系列聚类算法以及每种算法的不同配置。在本教程中,你将发现如何在
    的头像 发表于 05-22 09:13 355次阅读
    如何在 <b class='flag-5'>Python</b> 中安装和使用顶级聚类<b class='flag-5'>算法</b>

    如何在python实现ESP TOUCH协议?

    设备连接到路由器。 有人能告诉我如何在 python实现 ESP TOUCH 协议吗?这样所有模块连同树莓派都可以从一个应用程序同时配置。
    发表于 05-17 08:20

    100行Python实现人体肤色检测

    上. 它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法
    的头像 发表于 05-06 10:46 495次阅读