最新 | 最热门 | 最高评价

+0  正态分布为什么常见?

Tag: Algorithm
阮一峰 发于 2017年08月02日 07:33 | 点击: 721 | 展开摘要
统计学里面,正态分布(normal distribution)最常见。男女身高、寿命、血压、考试成绩、测量误差等等,都属于正态分布。

以前,我认为中间状态是事物的常态,过高和过低都属于少数,这导致了正态分布的普遍性。最近,读到了 John D. Cook 的文章,才知道我的这种想法是错的。

正态分布为什么常见?真正原因是中心极限定理(central limit theorem)。

"多个独立统计量的和的平均值,符合正态分布。"

上图中,随着统计量个数的增加,它们和的平

查看全文: http://www.udpwork.com/item/16373.html

+0  求第K个数的问题

Tag: Algorithm & Data Structure | Recommended | PriorityQueue | | 快排
四火 发于 2017年07月14日 13:01 | 点击: 480 | 展开摘要
一道经典的题目。给一堆乱序的数,如果它们从小到大排好,求第k个是多少。假设排列的下标从1开始,而非0开始。

这个问题如此之简单而熟悉,可它却可以是很多现实问题的某一个子问题的抽象。它本身相关的问题其实就不少,而且还可以不断演进,成为不同复杂程度的问题。

看到这个问题,脑海里的第一反应是一左一右红蓝两条分支——堆排序或者快排。Java中快排用Arrays.sort就可以了,如果是堆排序需要用到PriorityQueue。 用Arrays.sort写起来最简单(这里的参数校验

查看全文: http://www.udpwork.com/item/16349.html

+0  神经网络入门

Tag: Algorithm
阮一峰 发于 2017年07月13日 06:33 | 点击: 512 | 展开摘要
眼下最热门的技术,绝对是人工智能。

人工智能的底层模型是"神经网络"(neural network)。许多复杂的应用(比如模式识别、自动控制)和高级模型(比如深度学习)都基于它。学习人工智能,一定是从它开始。

什么是神经网络呢?网上似乎缺乏通俗的解释。

前两天,我读到 Michael Nielsen 的开源教材《神经网络与深度学习》(Neural Networks and Deep Learning),意外发现里面的解释非常好懂。下面,我就按照这本书,介绍什么是神经网络

查看全文: http://www.udpwork.com/item/16346.html

+0  LeetCode题目解答——第311到371题

Tag: Algorithm & Data Structure | LeetCode
四火 发于 2017年01月19日 13:19 | 点击: 528 | 展开摘要
老规矩,跳过需要付费的题目。题目是越来越不好做,我尽量把自己的思路写下来。

371

Sum of Two Integers 

51.9%
Easy

368

Largest Divisible Subset 

31.9%
Medium

367

Valid Perfect Square 

36.9%
Medium

365

Water and Jug Problem 

24.7%
Medium

363

Ma

查看全文: http://www.udpwork.com/item/16069.html

+0  如何识别图像边缘?

Tag: Algorithm
阮一峰 发于 2016年07月22日 07:39 | 点击: 586 | 展开摘要
图像识别(image recognition)是现在的热门技术。

文字识别、车牌识别、人脸识别都是它的应用。但是,这些都算初级应用,现在的技术已经发展到了这样一种地步:计算机可以识别出,这是一张狗的照片,那是一张猫的照片。

这是怎么做到的?

让我们从人眼说起,学者发现,人的视觉细胞对物体的边缘特别敏感。也就是说,我们先看到物体的轮廓,然后才判断这到底是什么东西。

计算机科学家受到启发,第一步也是先识别图像的边缘。

加州大学的学生 Adit Deshpande 写了一

查看全文: http://www.udpwork.com/item/15689.html

+0  LeetCode题目解答——第227到310题

Tag: Algorithm & Data Structure | LeetCode
四火 发于 2015年12月16日 14:56 | 点击: 909 | 展开摘要
LeetCode的题目是不断在更新。还是老规矩,跳过了那些需要付费才能做的题目。下面的解法可能不是最好的,具体问题我们可以讨论。截至目前我解答的全部的LeetCode放在了这里。

#

Title

Acceptance

Difficulty

310
Minimum Height Trees
24.0%
Medium

309
Best Time to Buy and Sell Stock with Cooldown
33.7%
Medium

307
Range Su

查看全文: http://www.udpwork.com/item/14858.html

+0  Cuckoo Filter:设计与实现

Tag: C/C++语言 | 数据库 | 程序设计 | 趣味问题 | Algorithm | filter | hashing | 海量数据
Leo 发于 2015年09月02日 09:18 | 点击: 1084 | 展开摘要
(感谢网友 @我的上铺叫路遥 投稿)

对于海量数据处理业务,我们通常需要一个索引数据结构,用来帮助查询,快速判断数据记录是否存在,这种数据结构通常又叫过滤器(filter)。考虑这样一个场景,上网的时候需要在浏览器上输入URL,这时浏览器需要去判断这是否一个恶意的网站,它将对本地缓存的成千上万的URL索引进行过滤,如果不存在,就放行,如果(可能)存在,则向远程服务端发起验证请求,并回馈客户端给出警告。

索引的存储又分为有序和无序,前者使用关联式容器,比如B树,后者使用哈希

查看全文: http://www.udpwork.com/item/14563.html

+0  理解矩阵乘法

Tag: Algorithm
阮一峰 发于 2015年09月01日 18:02 | 点击: 959 | 展开摘要
大多数人在高中,或者大学低年级,都上过一门课《线性代数》。这门课其实是教矩阵。

刚学的时候,还蛮简单的,矩阵加法就是相同位置的数字加一下。

矩阵减法也类似。

矩阵乘以一个常数,就是所有位置都乘以这个数。

但是,等到矩阵乘以矩阵的时候,一切就不一样了。

这个结果是怎么算出来的?

教科书告诉你,计算规则是,第一个矩阵第一行的每个数字(2和1),各自乘以第二个矩阵第一列对应位置的数字(1和1),然后将乘积相加( 2 x 1 + 1 x 1),得到结果矩阵左上角的那个值3

查看全文: http://www.udpwork.com/item/14561.html

+0  蒙特卡罗方法入门

Tag: Algorithm
阮一峰 发于 2015年07月27日 13:36 | 点击: 1123 | 展开摘要
本文通过五个例子,介绍蒙特卡罗方法(Monte Carlo Method)。

一、概述

蒙特卡罗方法是一种计算方法。原理是通过大量随机样本,去了解一个系统,进而得到所要计算的值。

它非常强大和灵活,又相当简单易懂,很容易实现。对于许多问题来说,它往往是最简单的计算方法,有时甚至是唯一可行的方法。

它诞生于上个世纪40年代美国的"曼哈顿计划",名字来源于赌城蒙特卡罗,象征概率。

二、π的计算

第一个例子是,如何用蒙特卡罗方法计算圆周率π。

正方形内部有一个相切的圆

查看全文: http://www.udpwork.com/item/14436.html

+0  LeetCode题目解答——155~226题

Tag: Algorithm & Data Structure | LeetCode
四火 发于 2015年06月18日 12:26 | 点击: 1336 | 展开摘要
LeetCode上面的题目更新很快,而且题目是越来越不好做了。我把最新的155到226题目的思考和解答过程放在下面,解法有好有坏,有问题我们可以讨论。老规矩,有一些题目是要买一个特定的电子书才可以在线做题的,我就跳过去了。

#

Title

Acceptance

Difficulty

226
Invert Binary Tree
37.6%
Easy

225
Implement Stack using Queues
30.0%
Medium

224
Basic C

查看全文: http://www.udpwork.com/item/14320.html

+0  泊松分布和指数分布:10分钟教程

Tag: Algorithm
阮一峰 发于 2015年06月10日 21:01 | 点击: 852 | 展开摘要
大学时,我一直觉得统计学很难,还差点挂科。

工作以后才发现,难的不是统计学,而是我们的教材写得不好。比起高等数学,统计概念其实容易理解多了。

我举一个例子,什么是泊松分布和指数分布?恐怕大多数人都说不清楚。

我可以在10分钟内,让你毫不费力地理解这两个概念。

一、泊松分布

日常生活中,大量事件是有固定频率的。

某医院平均每小时出生3个婴儿

某公司平均每10分钟接到1个电话

某超市平均每天销售4包xx牌奶粉

某网站平均每分钟有2次访问

它们的特点就是,我们可

查看全文: http://www.udpwork.com/item/14295.html

+0  建立动态规划状态转移方程的练习

Tag: Algorithm & Data Structure | 动态规划
四火 发于 2015年06月01日 14:52 | 点击: 1678 | 展开摘要
大学里面算法课老师教导过动态规划,但是就像看书要把书看厚再看薄一样,要把动态规划彻底理解,还是需要一些时间的锻炼。解动态规划问题,每个人都有自己的习惯的套路,我的理解是最核心的过程有两部,一个是找出问题的一个一个子“状态”,再一个就是建立“状态转移方程”(就是所谓的“递推关系式”)。把这个过程搞定,基本上动态规划的题目就解了一半了,剩下那些代码层面的事情,是把思路和数学方程实现而已了。

在实现的过程中,

查看全文: http://www.udpwork.com/item/14261.html
|<<<1234567>>>| 一共8页, 88条记录