自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (1)
  • 收藏
  • 关注

原创 数据库系统0T1(0):基础概念

数据库,简单来说可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。   数据库存储的基本对象是数据,数据可以是数字、文字、图片、音频、视频等等。数据库的基本特征   数据按一定的数据模型组织、描述和储存   可为各种用户共享   冗余度较小   数据独立性较高,与应用程序互不依赖   易扩展类型   关系数据库:MySQL、SQL Se

2015-07-31 22:29:28 1165

原创 谈谈闭包

闭包是函数和引用环境组成的整体。   闭包在运行时可以有多个实例,不同的引用环境和相同的函数组合可以产生不同的实例。  那么为什么要把引用环境与函数组合起来呢?   这主要是因为在支持嵌套作用域的语言中,有时不能简单直接地确定函数的引用环境。  让我来看Python代码的例子:def add1():  def add(x):    return x+1  return addadd1In

2015-07-30 22:20:38 769

原创 设计模式(5): 命令模式

命令(Command)模式:又称Action模式或者Transaction模式。它属于对象的行为模式。   命令模式把一个请求或者操作封装到一个对象中,于是这些命令可以被:   重复多次   取消   取消后又再重做  命令模式的本质是对命令进行封装,将发出命令的责任和执行命令的责任分割开(解耦)。命令模式使请求本身成为一个对象,这个对象和其他对象一样可以被存储和传递。  命令模式涉及到五个

2015-07-28 17:15:13 657

原创 网页资源下载器

一个简单的python程序,用于下载pdf/txt/ppt等网页资源下载。import urllib import urllib2 import re import socket#######################You may change here###############baseurl = '##########' #请自行添加下载网页地址format = '(pdf

2015-07-28 15:14:42 1114

原创 STL源码剖析(4):容器(list)

相较于vector的连续线性空间,list就显得复杂许多,它的好处是每次插入或删除一个元素,就配置或释放一个元素空间。因此,list对于空间的运用有绝对的精准,一点也不浪费。而且,对于任何位置的元素插入或元素移除,list永远是常数时间。  list 内部为双向链表,内部元素互相以link串接起来,每个元素都知道其前一个元素以及下一个元素的位置。template <class T>struct _

2015-07-27 11:47:21 701

原创 一致哈希

一致哈希是一种特殊的哈希算法。在使用一致哈希算法后,哈希表槽位数(大小)的改变平均只需要对K/n个关键字重新映射,其中K是关键字的数量,n是槽位数量。然而在传统的哈希表中,添加或删除一个槽位的几乎需要对所有关键字进行重新映射。  一致哈希由MIT的Karger及其合作者提出,现在这一思想已经扩展到其它领域。在这篇1997年发表的学术论文中介绍了“一致哈希”如何应用于用户易变的分布式Web服务中。哈希

2015-07-26 15:36:43 713

原创 大型网站技术架构笔录(2):模式

大型网站架构模式 既然是模式,就是经验之道,可重用的东西。1)分层 想想7层或4层网络模型,每层负责相对单一的功能,上下层调用。 网站一般分为三个层次:应用层、服务层和数据层。具体实现,还可以继续细化分层。 应用层:具体业务、视图展示,网站首页,搜索结果等 服务层:为应用层提供服务支持,如购物车,用户管理 数据层:提供数据存储访问,如数据库、缓存、文件 分层独立性,保持接口不变,合理规

2015-07-25 22:00:29 731

原创 大型网站技术架构笔录(1):演化

一)大型网站软件系统特点: 1)高并发、大流量:想想每年双十一 2)高可用:7*24小时不间断服务 3)海量数据:存储管理海量数据 4)用户分布广泛,网络情况复杂 5)安全环境恶劣:黑客,黑客,黑客 6)需求快速变更,发布频繁:快速适应市场,满足用户需求 7)渐进式发展:大型网站都是从小网站开始的二)大型网站架构演化过程 1)初始阶段网站架构:应用程序、数据库、文件等所有资源都集中在

2015-07-25 21:56:12 845

原创 设计模式(4): 观察者模式

观察者模式(有时又被称为发布/订阅模式)是软件设计模式的一种。在此种模式中,一个目标对象管理所有相依于它的观察者对象,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实作事件处理系统。     1)观察者模式描述了如何建立对象与对象之间的依赖关系,如何构造满足这种需求的系统。   2)其关键对象是观察目标和观察者,一个目标可以有任意数目的与之相依赖

2015-07-25 17:11:10 608

原创 白话同步异步、阻塞非阻塞机制

如果你想了解同步异步、阻塞非阻塞的基本概念,可以看下面,欲了解具体实现,请自行google^^,若有错误,请指出。来看生活中的例子:   比如你在天猫超市买了东西,短信通知说快递很快到了,这时候你有两个选择:   1)下楼等着快递员(同步)   2)在家等着快递员送货上门(异步)  如果你下楼等着,然并卵,这时快递员并没有到,这时候,你又有两个选择:   1)深情地望着路口,等着快递员的出现

2015-07-22 14:56:29 611

原创 生产者消费者模式(1)

生产者消费者问题(Producer-consumer problem)是一个多线程同步问题的经典案例。该问题描述了两个共享固定大小缓冲区的线程——即所谓的“生产者”和“消费者”——在实际运行时会发生的问题。生产者的主要作用是生成一定量的数据放到缓冲区中,然后重复此过程。与此同时,消费者也在缓冲区消耗这些数据。该问题的关键就是要保证生产者不会在缓冲区满时加入数据,消费者也不会在缓冲区中空时消耗数据。什

2015-07-18 21:26:22 1968

原创 TCP详解(3):重传、流量控制、拥塞控制……

数据传输  在TCP的数据传送状态,很多重要的机制保证了TCP的可靠性和强壮性。它们包括:使用序号,对收到的TCP报文段进行排序以及检测重复的数据;使用校验和来检测报文段的错误;使用确认和计时器来检测和纠正丢包或延时。   在TCP的连接创建状态,两个主机的TCP层间要交换初始序号(ISN:initial sequence number)。这些序号用于标识字节流中的数据,并且还是对应用层的数据字节

2015-07-18 10:46:13 23193 2

原创 LwIP协议栈(2):网络接口

在LwIP中,物理网络硬件接口结构保存在一个全局链表中,它们通过结构体中的 next 指针连接。struct netif { /// pointer to next in linked list */ struct netif *next; /// IP address configuration in network byte order */ ip_addr_t ip_addr;

2015-07-16 20:43:41 1998

原创 TCP详解(2):三次握手与四次挥手

TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接,就好像你给别人打电话,必须等线路接通了、对方拿起话筒建立了连接才能相互通话。   一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,我们这里只做简单、形象的介绍,你只要做到能够理解这个过程即可。我们来看看这三次对话的简单过程:

2015-07-16 14:26:27 2252

原创 LwIP协议栈(1):简介与pbuf

概述   Lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。   LwIP是Light Weight (轻型)IP协议,有无操作系统的支持都可以运行。LwIP实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用,它只需十几KB的RAM和40K左右的ROM就可以运行,这使LwIP协议栈适合在低端的嵌入式系统中使用。[1]

2015-07-15 23:03:43 5541

原创 TCP详解(1):简介与数据包

简介:   传输控制协议(英语:Transmission Control Protocol, TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内另一个重要的传输协议。         在因特网协议族(Internet protocol suite)

2015-07-15 14:45:19 3380

原创 POJ 3320: Jessicas Reading Problem

Jessica’s Reading Problem ( POJ No.3320)   为了准备考试, Jessica 开始读一本很厚的课本。要想通过考试,必须把课本中所有的知识点都掌握。这本书总共有 P 页,第 i 页恰好有一个知识点 ai(每个知识点都有一个整数编号)。全书中同一个知识点可能会被多次提到,所以她希望通过阅读其中连续的一些页把所有的知识点都覆盖到。给定每页写到的知识点,请求出要阅读

2015-07-14 15:43:15 895

原创 图算法(3):Floyd-Warshall算法

Floyd-Warshall算法(英语:Floyd-Warshall algorithm),中文亦称弗洛伊德算法,是解决任意两点间的最短路径的一种算法,即全源最短路径问题(All-Pairs Shortest Paths Problem),可以正确处理有向图或负权的最短路径问题,同时也被用于计算有向图的传递闭包。 Floyd-Warshall算法的时间复杂度为O(N^3)[3],空间复杂度为O(N

2015-07-12 21:13:49 1269

原创 图算法(2):Bellman-Ford算法

Bellman-Ford算法是由理查德•贝尔曼(Richard Bellman) 和 莱斯特•福特 创立的,求解单源最短路径问题的一种算法。有时候这种算法也被称为 Moore-Bellman-Ford 算法,因为 Edward F. Moore 也为这个算法的发展做出了贡献。它的原理是对图进行V-1次松弛操作,得到所有可能的最短路径。其优于迪科斯彻算法的方面是边的权值可以为负数、实现简单,缺点是时间

2015-07-12 16:07:42 1451

原创 图算法(1):Dijkstra's algorithm

Dijkstra’s algorithm使用了广度优先搜索解决非负权图的单源最短路径问题,算法最终得到一个最短路径树。该算法常用于路由算法或者作为其他图算法的一个子模块。举例来说,如果图中的顶点表示城市,而边上的权重表示著城市间开车行经的距离,该算法可以用来找到两个城市之间的最短路径。       其基本原理是:每次新扩展一个距离最短的点,更新与其相邻的点的距离。当所有边权都为正时,由于不会存在一

2015-07-12 15:10:31 4836

原创 拓扑排序

在图论中,由一个有向无环图的顶点组成的序列,当且仅当满足下列条件时,称为该图的一个拓扑排序(Topological sorting)。   1)每个顶点出现且只出现一次;   2)若A在序列中排在B的前面,则在图中不存在从B到A的路径。 也可以定义为:拓扑排序是对有向无环图的顶点的一种排序,它使得如果存在一条从顶点A到顶点B的路径,那么在排序中B出现在A的后面。  什么地方会用到拓扑排序呢?比

2015-07-11 23:10:28 638

原创 设计模式(3): 单例模式

单例模式,也叫单子模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息。这种方式简化了在复杂环境下的配置管理。   思考如何保证一个类

2015-07-06 17:48:01 448

原创 设计模式(2): 生成器模式

生成器模式(英:Builder Pattern)是一种设计模式,又名:建造模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。   前面一篇文章提到的抽象工厂模式与生成器相似,因为它也可以创建复杂对象。主要的区别是生成器模式着重于一步步构造一个复杂对象。而抽象工厂模式着重于多个系列的产品对象(简单的或是复杂的)。生

2015-07-06 16:31:43 605

原创 设计模式(1): 工厂模式

工厂模式属于创建型设计模式(Creational Patterns),实现了“工厂”概念的面向对象设计模式。就像其他创建型模式一样,它也是处理在不指定对象具体类型的情况下创建对象的问题。工厂方法模式的实质是“定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类。工厂方法让类的实例化推迟到子类中进行。”   创建一个对象常常需要复杂的过程,所以不适合包含在一个复合对象中。创建对象可能会导致

2015-07-06 15:45:08 749

原创 设计模式(0): 简介及SOLID原则

在软件工程中,设计模式(design pattern)是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。   设计模式并不直接用来完成代码的编写,而是描述在各种不同情况下,要怎么解决问题的一种方案。面向对象设计模式通常以类或对象来描述其中的关系和相互作用,但不涉及用来完成应用程序的特定类或对象。设计模式能使不稳定依赖于相对稳定、具体依赖于相对抽象,避免会引起麻烦的紧耦合,以增强软件设

2015-07-06 15:36:01 1185

原创 数学之美笔录(3):隐含马尔可夫模型(详解)

**隐含马尔可夫模型**HMM(Hidden Markov Model)是一个数学模型,到目前为之,它一直被认为是实现快速精确语音识别系统的最为快速有效的方法。复杂的语音识别问题通过隐含马尔可夫模型能非常简单地被表述、解决。   自然语言是人类交流信息的工具。很多自然语言处理问题都可以等同于通信系统中的解码问题 – 一个人根据接收到的信息,去猜测发话人要表达的意思。这其实就象通信中,我们根据接收端

2015-07-05 21:15:30 5462

原创 EM算法

最大期望算法(Expectation-maximization algorithm,又译期望最大化算法)在统计中被用于寻找,依赖于不可观察的隐性变量的概率模型中,参数的最大似然估计。 在讲EM算法之前,先复习下概率论里的最大似然估计。最大似然估计   两个基本概念:总体和样本   总体:研究对象的所有可能的观察结果称为总体。   样本:从总体中抽取一部分样品,称为总体的一个样本。

2015-07-05 20:42:07 1173

原创 尾递归

先来看维基百科上的解释:   在计算机科学里,尾调用是指一个函数里的最后一个动作是一个函数调用的情形:即这个调用的返回值直接被当前函数返回的情形。这种情形下称该调用位置为尾位置。若这个函数在尾位置调用本身(或是一个尾调用本身的其他函数等等),则称这种情况为尾递归,是递归的一种特殊情形。尾调用不一定是递归调用,但是尾递归特别有用,也比较容易实现。   尾调用的重要性在于它可以不在调用栈上面添加一个

2015-07-03 20:14:14 559

原创 贝叶斯方法及其应用(2)

本文是网上一些文章的整理总结,原文请戳文末。   贝叶斯概率和统计概率相对,它从确定的分布中观测到的频率或者在样本空间中的比例来导出概率。采用统计概率的统计和概率的理论由R.A. Fisher, Egon Pearson和Jerzy Neyman在20世纪上半叶发展起来。A. N. Kolmogorov也采用频率概率来通过勒贝格积分为测度论中的概率奠定数学基础(《概率论基础》(1933年))。Sa

2015-07-02 20:30:30 7610 1

原创 贝叶斯方法及其应用(1)

贝叶斯定理(英语:Bayes’ theorem)是概率论中的一个定理,它跟随机变量的条件概率以及边缘概率分布有关。在有些关于概率的解说中,贝叶斯定理(贝叶斯更新)能够告知我们如何利用新证据修改已有的看法。这个名称来自于托马斯•贝叶斯。   通常,事件A在事件B(发生)的条件下的概率,与事件B在事件A的条件下的概率是不一样的;然而,这两者是有确定的关系,贝叶斯定理就是这种关系的陈述。贝叶斯公式的用途

2015-07-02 20:14:58 2456

原创 数学之美笔录(2):中文分词

中文分词:统计语言模型在中文处理中的一个应用  前一篇文章(数学之美笔录(1):统计语言模型)我们提到使用统计语言模型进行自然语言的处理,而这些语言模型是建立在词的基础上,因为词是表达语义的最小单位。西方的拼音语言,词之间有明确的分界符,统计和使用语言模型处理相对简单。而对于汉语等东方语言,词之间没有明确的分界符(比如:我颜值很高。没有像英文一样的空格之类的分界符),这就需要先对句子进行中文分词。

2015-07-01 20:17:22 732

原创 数学之美笔录(1):统计语言模型

统计语言模型 (Statistical Language Models)介绍: 在语言处理领域,比如翻译、识别语音、文字识别和进行海量文献的自动检索,出现了两种最基本的方法。第一种方法比较直接,就是让机器像人一样理解语言。为了解决这个问题,人们想到的办法就是让机器模拟人类进行学习 - 学习人类的语法、分析语句等等。遗憾的是,几十年过去了,在计算机处理语言领域,基于这个语法规则的方法几乎毫无突破。

2015-07-01 19:28:18 1812

web资源下载器

一个简单德python脚本,可支持pdf/txt/ppt等网页资源的下载

2015-07-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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