梦想破碎是没有声音的,它只是缓慢又沉默地离开了。 by 苏更生

 分类:算法

科普一下AlphaGo的论文算法

二十年前我还是一名本科生的时候,就对计算机算法很感兴趣。当时深蓝战胜了卡斯帕罗夫,大家都普遍会议论到围棋,并且基本的观点都一致,就是计算机虽然在国际象棋上战胜了人类,但是离在围棋上战胜人类还有相当遥远的距离。没想到二十年后,我已经可以借助先进的4G通讯技术,实时收看AlphaGo...

cricode 1年前 (2016-03-22) 4040℃ 0评论 108喜欢

一个故事告诉你比特币的原理及运作机制

一个故事告诉你比特币的原理及运作机制
一篇关于比特币的有意思的文章,分享给大家! 周末花时间看了一些比特币原理相关的资料,虽然不敢说把每个细节都完全搞懂了,不过整体思路和关键部分的主要原理还是比较明白。写一篇文章分享给大家。这篇文章的定位会比较科普,尽量用类比的方法将比特币的基本原理讲出来。这篇文章不会涉及算法和协议...

熊 大 2年前 (2015-03-24) 6345℃ 0评论 14喜欢

8大排序算法图文讲解

8大排序算法图文讲解
排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。 本文将依次介绍上述...

Jay13 3年前 (2014-10-29) 59198℃ 3评论 194喜欢

ZIP压缩算法详细分析及解压实例解释

ZIP压缩算法详细分析及解压实例解释
最近自己实现了一个ZIP压缩数据的解压程序,觉得有必要把ZIP压缩格式进行一下详细总结,数据压缩是一门通信原理和计算机科学都会涉及到的学科,在通信原理中,一般称为信源编码,在计算机科学里,一般称为数据压缩,两者本质上没啥区别,在数学家看来,都是映射。一方面在进行通信的时候,有必要...

Jay13 3年前 (2014-09-08) 17294℃ 2评论 16喜欢

背包问题九讲

背包问题九讲
目录 第一讲 01背包问题 这是最基本的背包问题,每个物品最多只能放一次。 第二讲 完全背包问题 第二个基本的背包问题模型,每种物品可以放无限多次。 第三讲 多重背包问题 每种物品有一个固定的次数上限。 第四讲 混合三种背包问题 将前面三种简单的问题叠加成较复杂的问题。 第五讲 ...

Jay13 3年前 (2014-08-23) 9765℃ 0评论 6喜欢

工程实践中最常用的10大数据结构与算法讲解(0)

工程实践中最常用的10大数据结构与算法讲解(0)
在Quora上看到一个问题:工程实践当中,最常用的算法和数据结构有哪些? 以下是Google工程师Arjun Nayini给出的答案,得到了绝大多数人的赞同。 最常用的算法 1.图搜索算法(BFS,DFS)。 2.排序算法 3.通用的动态规划算法 4.匹配算法和网络流算法 5....

Jay13 3年前 (2014-08-23) 12101℃ 0评论 43喜欢

位运算及相关面试题汇总

位运算及相关面试题汇总
本文目录: 1)位运算基础 2)使用位运算交换两个整数 3)理解并使用位运算 4)判断字符串是否包含重复字符 5)Bitmap应用 6)布隆过滤器(Bloom Filter)   1.位运算符基础 四个位运算符:与&  或 ||   非 ~   异或^ 设二进制...

Jay13 3年前 (2014-08-17) 6513℃ 4评论 22喜欢

说一说程序员“举一反三”的能力

题图:“私想者” 获得思想的能力,我们称之为智力。解决一个问题,如果你能做到举一反三,那么你就真正获得了解决这一类问题的思想了。 好吧,我们一起来体会一下自己“举一反三”的能力究竟怎么样。 一、从快速排序说起 快速排序可以说是应用最广的一种排序算法。其思想是基于分治模式,将问题...

Jay13 3年前 (2014-08-15) 7821℃ 2评论 18喜欢

工程实践中最常用的数据结构与算法

工程实践中最常用的数据结构与算法
本文介绍工程实践中最常用的一些数据结构与算法。(文章中介绍的数据结构与算法由谷歌工程师Arjun Nayini给出) 最常用的算法 1.图搜索算法(BFS,DFS),深度优先搜索尤其重要,因为它能给出很多图的结构信息。 2.排序算法(比较排序和桶排序思想) 3.通用的动态规划算法...

Jay13 3年前 (2014-08-13) 4516℃ 0评论 15喜欢

Nginx高效数据结构(5)——内存池(ngx_pool_t)

Nginx高效数据结构(5)——内存池(ngx_pool_t)
Nginx是我们学习编程的一个非常有参考价值的开源项目。良好的编码风格,高效的数据结构、架构设计。 快课网在此搜罗了一些优质资源。从本文开始讲述Nginx中常用的数据结构,主要包括Nginx的数组结构、链表结构、队列、hash结构、内存池等。 0. 序 nginx对内存的管理由其...

Jay13 3年前 (2014-07-12) 4791℃ 0评论 9喜欢

Nginx高效数据结构(4)——Hash表(ngx_hash_t)

Nginx是我们学习编程的一个非常有参考价值的开源项目。良好的编码风格,高效的数据结构、架构设计。 快课网在此搜罗了一些优质资源。从本文开始讲述Nginx中常用的数据结构,主要包括Nginx的数组结构、链表结构、队列、hash结构、内存池等。 在阅读本文之前,建议先阅读文章:哈希...

Jay13 3年前 (2014-07-12) 5722℃ 0评论 12喜欢

Nginx高效数据结构(3)——队列(ngx_queue_t)

Nginx是我们学习编程的一个非常有参考价值的开源项目。良好的编码风格,高效的数据结构、架构设计。 通常学习Nginx主要有以下两种情形: 1) 需求驱动型。在实际应用中,需要在Nginx的基础上,开发一些特定需求的模块,为此,我们需要去了解Nginx的工作原理、架构设计,并完成...

Jay13 3年前 (2014-07-12) 3248℃ 0评论 8喜欢

Nginx高效数据结构(2)——链表(ngx_list_t)

Nginx是我们学习编程的一个非常有参考价值的开源项目。良好的编码风格,高效的数据结构、架构设计。 通常学习Nginx主要有以下两种情形: 1)需求驱动型。在实际应用中,需要在Nginx的基础上,开发一些特定需求的模块,为此,我们需要去了解Nginx的工作原理、架构设计,并完成相...

Jay13 3年前 (2014-07-12) 3604℃ 0评论 15喜欢

Nginx高效数据结构(1)——数组(ngx_array_t)

Nginx是我们学习编程的一个非常有参考价值的开源项目。良好的编码风格,高效的数据结构、架构设计。 通常学习Nginx主要有以下两种情形: 1)需求驱动型。在实际应用中,需要在Nginx的基础上,开发一些特定需求的模块,为此,我们需要去了解Nginx的工作原理、架构设计,并完成相...

Jay13 3年前 (2014-07-12) 5690℃ 2评论 9喜欢

哈希表

基本概念   哈希表(Hash Table)是一种根据关键字直接访问内存存储位置的数据结构。通过哈希表,数据元素的存放位置和数据元素的关键字之间建立起某种对应关系,建立这种对应关系的函数称为哈希函数(如图)。 哈希函数构造方法   哈希表的构造方法是:假设要存储的数据元素个数为...

Jay13 3年前 (2014-07-04) 7299℃ 0评论 7喜欢

扒一扒”极客头条”的排名算法

  在这个信息爆炸的时代,我们从未缺乏信息,我们缺乏的是如何在最短是时间内从海量的噪音数据中找到对自己真正有用信息的能力。当然,我们希望有这么一个推荐引擎,能将我们自己喜欢的内容推送到我们的眼前,免除我们自己挖掘信息的烦恼。 极客头条通过用户自荐和编辑推荐两种方式,干...

Jay13 3年前 (2014-06-19) 5319℃ 4评论 3喜欢

基于用户投票的排名算法(六):贝叶斯平均

上一篇介绍了“威尔逊区间”,它解决了投票人数过少、导致结果不可信的问题。   举例来说,如果只有 2 个人投票,”威尔逊区间”的下限值会将赞成票的比例大幅拉低。这样做固然保证了排名的可信性,但也带来了另一个问题:排行榜前列总是那些票...

Jay13 3年前 (2014-06-19) 2805℃ 0评论 3喜欢

基于用户投票的排名算法(四):牛顿冷却定律

这个系列的前三篇,介绍了 Hacker News,Reddit 和 Stack Overflow 的排名算法。   今天,讨论一个更一般的数学模型。   这个系列的每篇文章,都是可以分开读的。但是,为了保证所有人都在同一页上,我再说一下,到目前为止,我们用不同方法,企图解决的都是...

Jay13 3年前 (2014-06-19) 3380℃ 0评论 3喜欢

基于用户投票的排名算法(三):Stack Overflow

Reddit 排名算法的特点是,用户可以投赞成票,也可以投反对票。也就是说,除了时间因素以外,只要考虑两个变量就够了。   但是,还有一些特定用途的网站,必须考虑更多的因素。世界排名第一的程序员问答社区 Stack Overflow,就是这样一个网站。   你在上面提出各种关于...

Jay13 3年前 (2014-06-19) 2998℃ 1评论 5喜欢

基于用户投票的排名算法(二):Reddit

Hacker News 排名算法的特点是用户只能投赞成票,但是很多网站还允许用户投反对票。就是说,除了好评以外,你还可以给某篇文章差评。   Reddit 是美国最大的网上社区,它的每个帖子前面都有向上和向下的箭头,分别表示”赞成”和”反对&...

Jay13 3年前 (2014-06-19) 2746℃ 0评论 7喜欢

基于用户投票的排名算法(一):Delicious和Hacker News

互联网的出现,意味着”信息大爆炸”。   用户担心的,不再是信息太少,而是信息太多。如何从大量信息之中,快速有效地找出最重要的内容,成了互联网的一大核心问题。   各种各样的排名算法,是目前过滤信息的主要手段之一。对信息进行排名,意味着将信息按照重要性依...

Jay13 3年前 (2014-06-19) 2976℃ 0评论 8喜欢

必懂KMP算法

很久以前,我一直以来的印象是KMP字符串匹配算法很麻烦,很难懂。直到这篇文章的出现。 字符串匹配是计算机的基本任务之一。 举例来说,有一个字符串”BBC ABCDAB ABCDABCDABDE”,我想知道,里面是否包含另一个字符串”ABCDAB...

Jay13 3年前 (2014-06-18) 5344℃ 5评论 19喜欢

PageRank算法简介及Map-Reduce实现

PageRank对网页排名的算法,曾是Google发家致富的法宝。以前虽然有实验过,但理解还是不透彻,这几天又看了一下,这里总结一下PageRank算法的基本原理。 一、什么是pagerank PageRank的Page可是认为是网页,表示网页排名,也可以认为是Larry Pag...

Jay13 3年前 (2014-06-04) 3712℃ 1评论 5喜欢

如果看了这篇文章你还不懂傅里叶变换,那就过来掐死我吧(二)

上一篇文章发出来之后,为了掐死我,大家真是很下工夫啊,有拿给姐姐看的,有拿给妹妹看的,还有拿给女朋友看的,就是为了听到一句“完全看不懂啊”。幸亏我留了个心眼,不然就真的像标题配图那样了。我的文章题目是,如果看了这篇文章你“还”不懂就过来掐死我,潜台词就是在你学了,但是没学明白的情...

Jay13 3年前 (2014-06-04) 3067℃ 0评论 5喜欢

如果看了这篇文章你还不懂傅里叶变换,那就过来掐死我吧(一)

我保证这篇文章和你以前看过的所有文章都不同,这是 12 年还在果壳的时候写的,但是当时没有来得及写完就出国了……于是拖了两年,嗯,我是拖延症患者…… 这篇文章的核心思想就是: 要让读者在不看任何数学公式的情况下理解傅里叶分析。 傅里叶分析不仅仅是一个数学工具,更是一种可以彻底颠覆...

Jay13 3年前 (2014-06-04) 3426℃ 2评论 10喜欢

动态规划

动态规划
动态规划通过将原问题分解为子问题,然后通过求解子问题,并组合子问题的解而得到整个问题的解。通常动态规划求解的问题特别适用于具有重复子问题的问题。通过将子问题的解保持在一张表中,避免每次遇到各个子问题时重复计算,从而大大提高计算效率(也是一种典型的空间换时间)。 通过动态规划求解问...

Jay13 3年前 (2014-05-26) 3509℃ 1评论 13喜欢

二分查找算法及其变体

二分查找算法及其变体
二分查找算法 据说10个程序员,有九个写不对二分查找函数。 《编程珠玑》的作者Jon Bentley曾在贝尔实验室做过一个实验,即给一些专业的程序员几个小时的时间,用任何一种语言编写二分查找程序(写出高级伪代码也可以),结果参与编写的一百多人中:90%的程序员写的程序中有bug。...

Jay13 3年前 (2014-05-22) 7423℃ 0评论 4喜欢

程序员必须知道的10大基础实用算法及其讲解

算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner lo...

Jay13 3年前 (2014-05-14) 130247℃ 42评论 142喜欢