自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Python高效编程

从 Python 基础开始,注重实践,逐渐构建 Python 知识体系

原创 Python 实现大整数乘法算法

我们平时接触的长乘法,按位相乘,是一种时间复杂度为 O(n ^ 2) 的算法。今天,我们来介绍一种时间复杂度为 O (n ^ log 3) 的大整数乘法(log 表示以 ...

2019-09-15 22:03:50

阅读数 7597

评论数 4

原创 为什么要写个人博客?

做公众号差不多九个月了,今天给大家介绍下:为什么要写个人博客?主要是搭建个人知识体系写博客,可以将你学的七零八碎的知识点整合到一起,形成完整的个人笔记。这份笔记,记录了你...

2019-08-08 22:45:15

阅读数 1881

评论数 9

原创 Python 实现简易版成绩管理系统

上一次,公众号介绍了如何使用 Python 实现单链表,下面让我们一探单链表的简单应用:在命令行,实现简易版成绩管理系统。 这次的简易版成绩管理系统,主要有六大功能:增加学生信息、删除学生信息、修改学生信息、查找学生信息、显示学生信息、按 ID 排序。 实现效果如下: 保存与读取信息 首先判断当...

2019-01-14 20:40:05

阅读数 2112

评论数 5

原创 Nim 编程实现大整数乘法算法

我们平时接触的长乘法,按位相乘,是一种时间复杂度为 O(n ^ 2) 的算法。今天,我们来介绍一种,时间复杂度为 O (n ^ log 3) 的大整数乘法(log 表示以 2 为底的对数)。 介绍原理 karatsuba 算法要求乘数与被乘数要满足以下几个条件,第一,乘数与被乘数的位数相同;第二,...

2019-09-15 22:18:38

阅读数 81

评论数 0

原创 超级简单的虚拟机(Python 实现)

我们这次实现的简单虚拟机,和计算机的 cpu 有点类似。无非就是取指令,执行指令之类的操作。 常见的虚拟机通常分为两类,一种是栈式虚拟机,另一种是寄存器虚拟机。比如说 CPython, Jvm 就是基于栈的虚拟机,而 lua 则是基于寄存器的虚拟机。 我们这次实现的“玩具”虚拟机,就是一种...

2019-09-01 22:47:41

阅读数 259

评论数 0

原创 快速排序 Nim 语言实现

快速排序是一种平均时间复杂度为 nlog(n) 的原地排序,很适合大规模数据排序。它采用一种分而治之的手段,划分子问题,并递归地求解问题,最后将子问题的解合并为原问题的解。

2019-08-29 08:46:17

阅读数 433

评论数 0

原创 Nim 编程实现计算器

简易计算器 我们这次实现的命令行计算器,支持加减乘除、括号、浮点数、负数,以及查看历史和退出功能。 主要的思路:read - parse - print - loop。 read 阶段是指从读取用户在提示符(cal> )之后输入的字符串。 parse 阶段包括:将用户输入的字符串分割...

2019-08-15 22:48:05

阅读数 108

评论数 0

原创 [Python实战]使用栈实现简易计算器

我们这次实现的命令行计算器,支持加减乘除、括号、浮点数、负数,以及查看历史和退出功能。主要的思路:read - parse - print - loop。read 阶段是...

2019-08-13 08:28:14

阅读数 88

评论数 0

原创 Nim 编程极简入门(一)

Nim 编程极简入门(一) Nim 语言是一门静态类型的编译语言,语法上与 Python 类似,高效而优雅。 安装 Nim 在官网 https://nim-lang.org/install.html 下载 Nim 文件,下载完成后,点击文件夹中的 finish.exe 程序,会自动安装MingW。...

2019-08-08 16:57:11

阅读数 147

评论数 0

原创 动画演示 floodfill 算法填充颜色

上次我们谈到如何使用深度优先搜索解决迷宫问题。这次,我们再来看看深度优先搜索的其他应用,来模仿 photoshop 的魔棒功能来填充颜色。使用扫描线填充算法(scan-l...

2019-07-13 15:03:42

阅读数 66

评论数 0

原创 动画演示广度优先算法寻找最短路径

上一节,我们刚刚介绍了使用深度优先算法(DFS)解决迷宫问题,这一节我们来介绍广度优先算法(BFS)。BFS 算法与 DFS 十分相似,唯一的区别就是 DFS 算法使用后...

2019-06-18 10:05:25

阅读数 60

评论数 0

原创 python 实现深度优先搜索(DFS)

深度优先算法(DFS 算法)是什么? 寻找起始节点与目标节点之间路径的算法,常用于搜索逃出迷宫的路径。主要思想是,从入口开始,依次搜寻周围可能的节点坐标,但不会重复经过同一个节点,且不能通过障碍节点。如果走到某个节点发现无路可走,那么就会回退到上一个节点,重新选择其他路径。直到找到出口,或者退到起...

2019-06-08 13:04:50

阅读数 325

评论数 0

原创 动画演示深度优先算法搜寻逃出迷宫的路径

深度优先算法(DFS 算法)是什么?寻找起始节点与目标节点之间路径的算法,常用于搜索逃出迷宫的路径。主要思想是,从入口开始,依次搜寻周围可能的节点坐标,但不会重复经过同一...

2019-06-08 13:00:26

阅读数 48

评论数 0

原创 Python 实现生命游戏

这次我们使用 Python 来实现生命游戏,这是一种简单的元胞自动机。基于一定规则,程序可以自动从当前状态推演到下一状态。制作的成品如下: 先来说说生命游戏的规则: 在生命游戏中,每个单元格有两种状态,生与死。在我们的实现中,黄色的单元格代表活着的细胞,红色单元格表示死亡的细胞。而每一个细胞的下...

2019-06-06 11:17:57

阅读数 126

评论数 0

原创 Karplus-Strong 算法生成音符

大家有没有听过音叉发出的声音?音叉振动产生的声波很接近正弦波。而计算机合成的纯正正弦波,点击下面的音频即可试听。 音频地址 怎么说呢,和我们平时听到的乐器声完全不一样。这是因为,正弦波只包含一种频率,而我们平时听到的乐器的声波里掺杂着各式各样的频率。其中,我们把声波中强度最高的频率称为基本频率,把...

2019-05-21 18:07:17

阅读数 136

评论数 0

原创 Karplus-Strong 算法合成音符

大家有没有听过音叉发出的声音?音叉振动产生的声波很接近正弦波。计算机合成的纯正正弦波,点击下面的音频即可试听。下面是频率为 100 HZ 的音频。记得给公众号加个星标,不...

2019-05-19 22:42:36

阅读数 45

评论数 0

原创 用Python实现一个简单的加密程序

生活中,有时候我们需要对一些重要的文件进行加密,Python 提供了诸如 hashlib,base64 等便于使用的加密库。 对于日常学习而言,我们可以借助异或操作,实现一个简单的文件加密程序,从而强化自身的编程能力。 关注微信公众号:Python高效编程,了解更多 基础知识 在 Python 中...

2019-05-17 19:52:54

阅读数 314

评论数 0

原创 用 Python 加密文件

生活中,有时候我们需要对一些重要的文件进行加密,Python 提供了诸如 hashlib,base64 等便于使用的加密库。但对于日常学习而言,我们可以借助异或操作,实现...

2019-05-17 19:31:30

阅读数 66

评论数 0

原创 Python 标准库学习 --- string

关注微信公众号:Python高效编程了解更多 想要代码写得好,除了参与开源项目、在大公司实习,最快捷高效的方法就是阅读 Python 标准库。学习 Python 标准库,不是背诵每一个标准库的用法,而是要过一遍留下印象,挑自己感兴趣的库重点研究。这样实际做项目的时候,我们就可以游刃有余地选择标准库...

2019-05-16 20:19:50

阅读数 79

评论数 0

原创 通过例子学递归

关注微信公众号:Python高效编程,学习更多实战文章。 思考问题 在文章正式开始之前,大家先思考一个问题:给定 1 元、2 元、5 元、10 元 四种纸币,如何通过组合(不限制单张纸币的使用次数)购买 12 元的商品?如果不考虑排序次序,有多少种组合方式?如果考虑排列次序,又有多少种可能的组合?...

2019-05-11 12:51:36

阅读数 91

评论数 0

提示
确定要删除当前文章?
取消 删除