日积月累

我代码写的少,你可别骗我

Python序列的修改、散列和切片

引言 信息检索领域经常使用 n 维向量,查询的文档和文本使用向 量表示,一个单词一个维度。这叫向量空间模型。在这个模型 中,一个关键的相关指标是余弦相关性(即查询向量与文档向量夹 角的余弦)。夹角越小,余弦值越趋近于 1,文档与查询的相关性 就越大。相关性越大也就是越相似,可用于分类、相似搜索以及...

2019-08-17 16:11:57

阅读数 9

评论数 0

人工智能数学基础之线性代数(持续更新)

前言 本文只会记录人工智能中所用到的离散数学知识,并不会记录大学离散数学教材中的所有知识。 只会介绍向量和矩阵、矩阵的行列式、特征向量和特征值以及矩阵分解。 标量 只有大小没有方向的量称为标量。 单个数字就是标量。 向量 所谓的向量就是一组数字,可以用vvv来表示 v=[123]v = \left...

2019-08-15 22:05:34

阅读数 28

评论数 0

符合Python风格的对象

对象表示形式 所谓对象表示形式,就是将对象转换为一种可读的形式。 Python提供了两种方式: repr():以便于开发者理解的方式返回对象的字符串表示形式 str():以便于用户理解的方式返回对象的字符串表示形式 我们只要实现 __repr__ 和__str__ 特殊方法,就可以为repr(...

2019-08-13 17:01:03

阅读数 9

评论数 0

Python对象引用、可变性和垃圾回收

变量是引用 >>> a = [1, 2, 3] >>> b = a >>> a.append(4) >>> b [1, 2, 3,...

2019-08-01 16:36:04

阅读数 23

评论数 0

Python函数装饰器和闭包

引言 函数装饰器(不是设计模式中的装饰器模式)用于在源码中“标记”函数,以某种方式增强函数的行为。这是一项强大的功能,但是若想掌握,必须理解闭包。 除了在装饰器中有用处之外,闭包还是回调式异步编程和函数式编程风 格的基础。 首先看一下装饰器基础知识 装饰器基础知识 装饰器是可调用的对象,其参数是另...

2019-07-31 17:12:43

阅读数 52

评论数 0

Python使用一等函数实现设计模式

本篇将使用函数对象重构策略模式,还将讨论一种更简单的方式,用于简化命令模式。 重构策略模式 首先看一下经典的策略模式是怎么实现的 经典的策略模式 # -*- coding: utf-8 -* from abc import ABC,abstractclassmethod from collec...

2019-07-30 18:07:39

阅读数 26

评论数 0

Python一等函数

在Python中,函数是一等对象: 在运行时创建 能赋值给变量或数据结构中的元素 能作为参数传给函数 能作为函数的返回结果 把函数视作对象 >>> def factorial(n): #通过控制台会话运行时创建一个函数 ... '''retur...

2019-07-30 16:28:29

阅读数 34

评论数 0

Python文本和字节序列

字符问题 从Python3的str对象获取的元素时Unicode字符,相当于从Python2的unicode对象中获取的元素,而不是从Python2的str对象中获取的原始字节序列。 把码位(字符的标识)转换成字节序列的过程是编码;把字节序列转换成码位的过程是解码: >&gt...

2019-07-28 18:32:06

阅读数 21

评论数 0

Python标准库

模块 现在已经知道了通过import从外部模块获取函数: 比如import math 那么如何编写自己的模块呢 模块是程序 任何Python程序都可以作为模块导入 假设在/root目录下编写hello.py,内容为: # hello.py print 'Hello' 进入python解释器: &...

2019-07-17 18:20:56

阅读数 28

评论数 0

人工智能数学基础之高等数学(持续更新)

函数 y=f(x)y = f(x)y=f(x) ,x是函数f的自变量,y是因变量 函数极限 lim⁡x→x0f(x)=A\lim\limits_{x \to x_0} f(x) = Ax→x0​lim​f(x)=A 当xxx无限接近于x0x_0x0​时,f(x)f(x)f(x)无限接近于常数A。 ...

2019-07-15 23:18:25

阅读数 1705

评论数 0

还不了解跳表吗,看这篇文章就够了

引言 本来在研究完B树之后,应该直接撸红黑树的。但是突然想起来一种可以快速查找、插入、删除的数据结构,据说可以代替红黑树。就是本文的标题——跳表(SkipList)。跳表还有一个优点是实现起来简单。 redis中的有序集合,其实就是基于跳表实现的。 特性 跳表有很多层,如果只看0层的话,就是一个有...

2019-07-11 17:28:03

阅读数 175

评论数 0

图解B-树

引言 特性 一颗m阶的B树特性如下: 1.任意非叶子节点最多只有M个儿子,且M>2; 2.根节点的儿子(分支)数为[2, M],或者根节点是叶子节点,无分支; 3.除根节点以外的非叶子节点的儿子数为[M/2, M]; 4.每个节点存放至少M/2-1(取上整)和至多M-1个关键字;(至...

2019-07-02 17:28:54

阅读数 118

评论数 0

Mysql/Mariadb本地不可以登录,远程可以登录问题的解决

引言 今天碰到了一个奇怪的问题,前几天设置了MariaDB root用户远程访问权限并修改了密码。今天服务器报Access denied for user 'root'@'localhost' (using password: YES) 解决方法 MariaDB版本为: mysql Ver 1...

2019-06-30 16:14:23

阅读数 160

评论数 0

图解双层伸展树

引言 伸展树的出发点是这样的:考虑到局部性原理(刚被访问过的数据,极有可能很快地再次被访问),因此将刚被访问过的节点移(旋转)到根节点。 如果没有了解过AVL树,建议先看下 图解AVL树 伸展策略 那么该如何旋转呢? 逐层伸展 联系刚刚学过的AVL树,我们可以从待访问的节点开始,逐层往上旋转。...

2019-06-26 18:04:27

阅读数 35

评论数 0

《Effective Java 3rd》读书笔记——泛型

不要使用原生类型 声明中具有一个或多个类型参数的类或者接口就是泛型类或接口。泛型类和接口统称为泛型。 每一种泛型都定义一个原生(态)类型,即不带任何实际类型参数的泛型名称。例如,与List<E>相对应的原生类型是List。 private final Collectio...

2019-06-25 22:46:53

阅读数 50

评论数 0

图解AVL树

引言 AVL树是带有平衡条件的二叉查找树,它保证树的深度须是O(logN)O(logN)O(logN)。 特性:它每个节点的左子树和右子树的高度最多差1。 空树的高度定义为-1。 上图中左边的树是AVL树,而右边不是。右边树左子树高度为3,右子树高度为1,相差超过1。 实现 树节点结构 priv...

2019-06-18 17:43:33

阅读数 55

评论数 0

图解二叉树的遍历

引言 本文介绍了二叉树的先/中/后序遍历的递归实现和非递归实现,以及层次遍历的实现。 先序遍历 所谓先序遍历,就是先访问根节点,再访问左右子节点。在这些遍历策略中,左子节点的访问都在右节点访问之前。 我们以这样一颗二叉树为例,其实它是更为严格的二叉搜索树。 对该树进行先序遍历,输出:3 1 0 ...

2019-06-13 18:38:35

阅读数 45

评论数 0

图解二叉查找树

引言 二叉树的一个重要应用是它们在查找中的使用。 二叉查找树(二叉排序树\二叉搜索树)定义:二叉查找树或者是一棵空树,或者是具有下列性质的二叉树: 若左子树不空,则左子树上所有结点的值均小于它的根结点的值 若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值 左、右子树也分...

2019-06-11 18:36:48

阅读数 49

评论数 0

数据结构——树的概述

引言 对于大量的输入数据,链表的线性访问时间太慢,不宜使用。本篇讨论一种简单的数据结构——树,它大部分操作的运行时间平均为O(logN)O(logN)O(logN)。数据结构中有很多树的结构,其中包括二叉树、二叉搜索树、2-3树、红黑树等等。 基本概念 树(tree)是一些节点的集合。该集合...

2019-06-11 18:36:35

阅读数 75

评论数 0

图论算法——最短路径算法

引言 在Prim算法和Kruskal算法中,我们学习了寻找加权无向图的最小生成树的Prim算法:构造最小生成树的每一步都向生成树中添加一条新的边。 今天要学习类似的方法来计算最短路径——Dijkstra算法。 Dijkstra算法 最短路径树中的边:edgeTo[v]的值为树中连接v和它的...

2019-06-10 21:02:06

阅读数 114

评论数 0

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