自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 心理学大白话:科学理解束缚我们的常见思维

我们从一个经典的心理学实验开始:心理学家把三只猴子放在一个笼子里,笼子中间挂着一直香蕉。实验室这样设定的,如果有任何猴子去抓香蕉,所有的猴子都会受到电击。毋庸置疑,刚开始的时候,因为天性,猴子一定会去抓香蕉的,但受过几次电击之后,猴子们很快就达成了共识:抓香蕉是禁忌,这种行为会带来灾难。接下来的事情就比较有趣了,心理学家把笼子里的一只老猴子换成一只新猴子,且停止了电击,这只天性纯真的新猴子...

2019-03-03 17:18:11 993

原创 正确的学习方法只有一种风格

随着社会大环境竞争越来越激烈,稍微有点志向的人基本都会面临“终身学习”的问题,然而对大部分人来说,学习并不是一个很开心的事情,总有自己不喜欢学却又不得不学的内容。人肯定是希望开心的活着,但不学习肯定会开心的断粮,所以明白如何有效率的学习,尽量的减少学习的副作用,对每个人都大有裨益。本文内容主要参考了《科学美国人》在2018年发表的一篇全球范围内有关学习的研究的综述,此刊物至今共有150余位诺奖...

2019-02-23 16:26:51 1692

原创 微信更新7.0之我见 产品背后的哲学逻辑----一切都是自然而然

《传习录》记载:先生(指哲学家王阳明)游南镇,一友指岩中花树问曰:“天下无心外之物,如此花树在深山中自开自落,于我心亦何相关?”先生曰:“你未看此花时,此花与汝心同归于寂;你来看此花时,此花颜色一时明白起来,便知此花不在你的心外。” 以上是我国著名哲学家、政治家、军事家王阳明先生一段很有名的故事。哲学这种东西,脱离实际是非常难理解的,但同时它又无时无刻不在影响我们的生活,如果有心的话,...

2018-12-24 21:48:42 321

原创 《编程珠玑》代码之路21:设计一个比C++库函数快一个数量级的《圣经》单词统计功能

给出这么一个问题,统计《圣经》出现的所有单词以及其出现次数,单词定义为两个空格之间的词语,当然开头结尾这种自然也是单词。容易想到的是用C++库函数的map,但这其实并不是最优的选择,根据实际情况选择最优的数据结构,比直接调库,要好玩的多。怎么办呢,《圣经》中有29131个不同的单词,我们可以做一个散列,大小用最接近单词数量的质数,乘数定义为31,这也是散列技术比较传统的办法。如果冲突的...

2018-12-19 22:02:19 331

原创 简明机器学习系统概述

我们假设一个贴近实际的场景,我们现在需要建立一个为用户提供在线电影和电视节目的内容服务系统。业务成长迅速,用户量和收录的电影量都在增加,现有的业务结构如图所示:可以看到,现有的系统不断的收录用户数据,然后通过人工的方式选择和推荐电影实现对用户的推荐和批量营销。那么现在就有问题了,也许有人会质疑你,原有的方式不好吗?为什么非要机器学习?事实上,使用机器学习的理由有很多,不使用机器...

2018-12-19 13:36:33 908

原创 Scala+Spark:PageRank算法逐行精讲

 PageRank中的依赖关系PageRank,网页排名,又称网页级别、Google左侧排名或佩奇排名,是一种根据网页之间相互的超链接计算的技术,而作为网页排名的要素之一,以Google公司创办人拉里·佩奇(Larry Page)之姓来命名。Google用它来体现网页的相关性和重要性,在搜索引擎优化操作中是经常被用来评估网页优化的成效因素之一。Google的创始人拉里·佩奇和谢尔盖·布林于...

2018-12-15 21:52:16 885

原创 《编程珠玑》代码之路20:优先队列的源码实现

在 《编程珠玑》代码之路19:堆的概念和隐式堆实现(https://blog.youkuaiyun.com/beijixiong5622/article/details/85001300)中,我们给出了堆的调整算法,主要是通过下沉和上浮操作使得因改变一个元素打乱结构的堆复原。优先队列顾名思义是一个队列,不同之处在于,它每次弹出的是最小值(最大值),在C++等高级语言中,优先队列就是通过堆来实现的,源码如下...

2018-12-15 16:19:56 162

原创 《编程珠玑》代码之路19:堆的概念和隐式堆实现

堆是用来表示元素集合的一种数据结构,它有两个性质(大顶堆和小顶堆差异就一个符号,本文不详细讨论):1:任何节点都小于或等于其子节点的值。2:最多在最后一层和倒数第二层才有叶节点,而且尽可能靠左侧分布。以上的性质,使得堆可以实现logn级别的插入和删除操作,查询最小值同样也是logn。那么一个堆如何实现呢,单纯用指针实现肯定不是一成不变的选择,因为堆特殊的性质决定了堆是比较完全的树,...

2018-12-14 12:38:08 199

原创 Scala版Spark简单商品统计程序教程--逐行精讲

题目是给一点点数据,统计总营业额,最受欢迎的商品啥的,很容易,适合练手:John,iPhone Cover,9.99John,Headphones,5.49Jack,iPhone Cover,9.99Jill,Samsung Galaxy Cover,8.95Bob,iPad Cover,5.49第一列人名,第二列商品名,第三列价格。每行代表一个订单记录,把他们复制到一个cs...

2018-12-13 19:06:36 1441

原创 《编程珠玑》代码之路18:用位图和“箱”更快更省空间地存储和查找数字

有一个看起来很简单的问题:如何存储一波随机整数,使得查找和存储效率尽可能高?通常的办法自然是数组和链表,当然如果这么玩,那博客就没必要写了2333333。一个32位整数int正常来说有32位,每种语言都有所不同,如果只是存储和查找数字的话,其实这是非常浪费的,而且是几十倍的浪费。比如,如果用最低位表示数组0是否存在,1代表存在,0代表不存在,次低位表示1是否存在。那么,这时候就可以在不...

2018-12-12 21:27:23 174

原创 《编程珠玑》代码之路17:如何产生指定概率的随机不重复大数

我们都知道,C语言函数库的随机函数应用范围十分有限,RAND_MAX也就2^15那么大,如果单纯的扩展范围,那么精度自然就是问题了,不仅如此,在RAND_MAX不够大的情况下,产生小于指定数的精度也是非常受限的。所以本文:1:会实现一个最大能到2^30,精确的随机函数。2:会用不同思路实现不同时间复杂度的等概率不重复随机数列算法。好了,进入正题:如何实现一个更大精度的随机函数呢?首...

2018-12-07 16:46:32 283

原创 《编程珠玑》代码之路16:直观感受为何程序员需要学习经典算法

作为一名老年ACM菜鸡,经常见到周围除了调库啥也不会的程序员,还经常一脸正经的说:“程序员就是把人家写好的东西拿出来调用一下,顶多改改嘛。”。emmmm,在这个猫猫狗狗都能养活自己的年代,这么想确实没问题 ---- 如果你确定自己不用面临被淘汰的风险,或者在别的领域能首屈一指。大家应该都了解插入排序和快速排序。快速排序在后期其实是由一块一块接近有序的小块组成的数组,递归下去计算小块的成本其...

2018-12-05 18:11:15 442

原创 《编程珠玑》代码之路15:节省空间的常见姿势

1:地理信息库中存储邻居的系统地理信息库中的邻居用一个点(x, y)表示,x和y在[0,199]取值,假设一共有两千个,那么可以用一个200*200的二位格子矩阵表示,还可以作成图形界面,用户点击那个格子,系统把点击信号转化成对应的x和y,就可以直接访问相应邻居,如下图所示,格子为空表示空值,否则为相应数据。法一:我们可以直接用一个二维数组实现,这样访问起来也非常方便,但问题中也就只有...

2018-12-04 19:55:27 246

原创 《编程珠玑》代码之路14:两个不会算法也能把效率提升4倍的小套路

现在我们假设要在没排序的数组中找一个数:菜狗也能写出如下的算法1:找到了我就返回位置,否则我就返回-1。int search1(){ for (int i = 0; i < MAXN; ++i){ if (nums[i] == VALUE){ return i; } } return -1;}现在问题来了,算法效率差一点点,入股能优化8%那就可以用了,...

2018-11-27 21:58:23 220

原创 《编程珠玑》代码之路13:数组如何在线性时间内实现多次区间修改

给一个数组,每次对某个区间增加某个值,如何在线性时间内完成。比如一个数组,刚开始都是0吧,如下表,第一行是下标:0 1 2 3 4 5 6 7 0 0 0 0 0 0 0 0 操作 1 3 5,代表给下标1-3的元素都加5,有很多次这样的操作。正常来说,这个算法复杂度为n^2。要实现线性时间...

2018-11-26 21:54:01 224

原创 《编程珠玑》代码之路12:如何用C/C++实现array[-1]并利用它写出优美的代码

我们就以最大子数组和为例:最大子段和问题:给一组数,计算最大子段和。在博客:最大字段和的6种解法,解法三中,我们提到了保存前i项和的操作:cache[i]代表前i-1项之和,因为在c/c++中,cache[-1]会越界,所以如果用cache[i]代表前i项和的话,那么在用递推公式计算低0项的时候,会特别尴尬。后续计算子段和的时候,下标也是绕来绕去,一不小心就写错。。那么怎么办呢,这...

2018-11-25 17:41:08 261

原创 《编程珠玑》代码之路11:最大子数组和问题,花式七种解法

给一个一维数组,有正数也有负数,求最大子数组和是多少。这是《编程珠玑》第八章探讨的一个主要问题,也是平时刷题和各大厂面试的常客。作为这么经典的一个问题,要是老生常谈,那就没什么意义了,这里为大家带来七种解法,其中更有一个最优复杂度的线性算法,博主在各大厂面试的时候,碰到的面试官也非常惊讶有这么一个解法的存在。自然问到这个问题的面试,都理所当然的过了。(本博客代码不会考虑溢出等工程问题)。...

2018-11-23 21:41:17 524

原创 《编程珠玑》代码之路10:little定律,一个和生活息息相关的结论

今天,同学聚会,喝了十瓶啤酒,死皮赖脸的要了一个哥们的电脑,保证自己不会吐上边哈哈。哈哈,好啦,进入正题:Little定律:系统中物体的平均数量等于物体离开系统的平均速率和物体在系统中平均停留时间的乘积。和大部分定律一样,乍眼看去,一点用没有。现在给出下面一个场景:一个可以容纳60人的餐厅,前面有20人排队,请估计需要等待的时间:这个问题就可以用little定律做很好的:假...

2018-11-21 01:55:41 486

原创 《编程珠玑》代码之路9:请粗略估计,200万一个值和一个指针的结构体能否存入128MB内存。

这个问题是《编程珠玑》第七章的一个问题。主要就是说像一个结构体中包含一个int和一个char,加起来是5个字节,但因为字节对齐的需要,实际会占用8字节。就这么多么?作为经典巨著,当然不会这么一点点啦。看下图:这幅图是告诉我们,一个对齐后sizeof()列大小的结构体,用new分配空间时,实际上会产生很多无效空间,比如sizeof=12的结构体,new时会分配64字节的空间。而且...

2018-11-19 21:51:52 178

原创 《编程珠玑》代码之路8:自动化测试

这次的内容会比较轻松,一段代码写好了,如何保证它是正确的?比如就写好了一个二分查找吧,确定它正确?手动的话,估计是个正常人10次就哭了。所以如果能自动执行的话,那就很开心了。为了做到自动化测试,我们需要用到下面语句:assert(i >= 0):在i大于或者等于0的时候正常执行,否则报错。下面给出了一个编写自动化代码测试的姿势:#include <iostrea...

2018-11-17 17:54:27 179

原创 《编程珠玑》代码之路7:这个算法全世界程序员16年才写对,你肯定想不到竟然是这个

这篇博客要讲的算法,是个有故事的算法,大家一定会喜欢的:有这么一个算法:1:业界巨佬经典巨著《编程珠玑》的作者,在课堂上给出了思想,不限时间让程序员们实现,所有的程序员在提交的时候都觉得自己写的是对的,然而结果是即使是高级程序员,90%以上的人都写错了。2:世界史诗级计算机天才、人工智能之父、图灵奖获得者Donald Ervin Knuth,在传说级巨著《计算机程序设计艺术》中提到:有...

2018-11-16 21:50:58 4641 2

原创 《编程珠玑》代码之路6:将逻辑和代码分离----编码形式图形化输出字母

好啦比如字母I,输出为:xxxxxxxxxxxxxxxxxxxxxxxxxxx     xxx          xxx          xxx          xxx          xxx          xxx     xxxxxxxxxxxxxxxxxxxxxxxxxxx字母L输出为:xxxxxxxxxxxxxxxxxxxxxxxxxx...

2018-11-16 16:23:19 213 1

原创 《编程珠玑》代码之路5:格式信函编程----将数据和代码分开的好处

我们打开一些网站,经常会看到不同客户专属信息,例如:Welcome back, Jane!We hope that you and all the membersof the Public family are constantlyreminding your neighbers thereon Maple Street to shop with us.As usuall, we w...

2018-11-15 21:25:49 294

原创 《编程珠玑》代码之路4:变位词集合完整代码

字典的变位词集合:变位词就是由相同的字母的不同顺序组成的单词,例如pots和stop就是变位词,按构成字母顺序排序的opst就是他两的标志。现在给一个字典,把变位词一起输出:例如一个字典:panspotsoptsnapstoptops那么对应的标志分别是:anps pansopst potsopt optanps snapopst stopopst tops...

2018-11-14 20:08:02 353

原创 《编程珠玑》代码之路3:40(2^32)亿个不重复数寻找缺失值,字符串旋转,字典的变位词集合

1:第一题,给一个40亿个数的顺序32位整数集合,寻找一个缺失数,时空复杂度O(n)。题目给的是2^32的数据范围,就是32位数,但事实上换成3位数字道理一样的,所以就以3位数字(0-7)为例:比如:0, 1, 2, 3, 4, 6, 7,缺失值是5。好了接下来写出他们的二进制:0---000     1---001     2---010     3---0114---100...

2018-11-13 19:47:48 527

原创 《编程珠玑》代码之路2:骚!数组不初始化直接访问不出错还很秀!!!

作为一只程序员,肯定经常申请空间对吧,申请完的空间我们首先要初始化,然后再进行操作。好了问题来了,初始化时需要时间的,尤其是申请的空间大了,那初始化将非常耗时。那我能不能不全部初始化?用哪个初始化哪个呢?我们知道不初始化的话,内存里面存的东西都是随机的,用哪个初始化哪个,你怎么知道哪个是初始化的哪个是随机的?还真有这种骚操作!!!多骚呢?就这么骚。。。正常情况下,我们申请个...

2018-11-08 11:39:04 203

原创 《编程珠玑》代码之路1:学习位操作的神器----位图排序(附解决程序员心理问题的门路)

最近由于“闲书”读太多,不少朋友以为我要转当产品经理了,故想起来把最近读的《编程珠玑》以及自己编写的代码整理成博客,用代码证明自己的清白。虽然自己比较菜不能和Google和ACM金牌大佬PK技术,作为一只老年菜鸡ACMer,经常一顿操作猛如虎,一看战绩0AC。但相信对于刚入门的小伙伴来说,我的代码也许能帮上忙哈哈,同时作为一只纯种家养菜鸡却经常被各路大佬轮番吊打的我,也会结合《编程珠玑》提到的...

2018-11-08 10:10:01 915 1

原创 铃木敏文《零售的哲学》品读之对产品经理和程序员的现实意义 下篇

《零售的哲学》品读系列的上篇主要谈的是比较宽泛的东西(https://blog.youkuaiyun.com/beijixiong5622/article/details/83783477),简单的从哲学思想角度分析了一下本书。很多有(mei)志(qian)青年看完估计都想一砖拍死博主:宝宝好不容易有时间看一篇文章,你就跟我讲“为人民服务”啊。emmmm,博主只好先求各位看官拿好手里的板砖,先听我说两句再拍不...

2018-11-06 18:15:56 691 1

安卓Eclipse相机完整项目

一个不错的相机,是一个开源的Android项目,文件比较多,程序猿们慢慢研究吧.

2014-06-18

空空如也

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

TA关注的人

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