摘要: 第一次听说Bloom Filter 是我在跟一个师兄交流一道算法题的时候听到的一个陌生名词,当时就google了一下,很快就从吴军老师的google黑板报里得到了答案。原来它是这么一个高级的数据结构(连google都在用)。对于集合的处理,一般我们能想到的数据结构无非就是树,hash表这两个基础的数据结构。每一个数据结构都有自己的用武之地,在处理一个相对来说不算很大的集合的时候这两个数据结构足以能够应付了,并且是相当的令人满意,然而你有没有想到过数据量很大的情况,像《数学之美》中提到的例子,如果需要你很快的判断一个电子邮件的发送者是否在黑名单中(这个黑名单是很大的,上亿级别的)。这个时候如果用 阅读全文
posted @ 2012-06-27 20:15 f_x_p 阅读(371) 评论(0) 推荐(0)
摘要: 经常有人说他对自己所目前所做的事情没兴趣,或者对自己的专业不感兴趣,而他真正感兴趣的是某某事情,某某专业。---正如我们经常看到的那样,这些人往往不快乐。因为它们(觉得)自己在做自己不喜欢的事情。 然而,真的是他们以为的那样吗?不客气的说,99%的情况并非如此。首先,这些人并不是对正在做的事情没有兴趣,而是没能力把目前正在做的事情做好。没有人喜欢自己做不好的事情。每个人都会不自觉地尽量回避自己的短处;唱歌跑调的人通常不太喜欢与朋友一块去KTV;牌技差的人被朋友叫去不缺的时候往往非常不情愿;不善与人交往的人通常开会的时候会坐在会场角落。。。。当然,有些人是不自知的:唱歌跑调却居然是麦霸的那... 阅读全文
posted @ 2012-06-25 19:39 f_x_p 阅读(334) 评论(0) 推荐(1)
摘要: 每一位学习过C语言的同学都知道char这个数据类型是用来存储字符变量的。可它在内部到底是怎么表示的呢?我们看到的仅仅是由编译器进行解析过之后的情形。如果你觉得没必要深究,就不用再往下面看了。 在C语言中其实都把char分为了unsigned char和signed char. 我们平时使用unsigned char和char 并不一定全都是为了表达一个字符,有时候我们可能会在别的地方使用它们,比如:在有些时候我们为了节省内存空间(用更少的内存区表达相同的信息),比如在嵌入式编程中长用到的在表达的整数在比较小的范围中时,就可以仅仅用char类型来表示整数,免去了浪费多余的空间。(用char... 阅读全文
posted @ 2012-06-21 19:39 f_x_p 阅读(2240) 评论(0) 推荐(0)
摘要: 也许很多人懂得这个概念,也许很多不知道。之前我只知道有这么一种函数,但不知道它的具体实现原理,今天又对它进行了重新的学习。 在C语言中如果你分别定义了这样的两个函数 int function1(){ ............. } int function2(void){ ............. } 那么请问你知道它们的不同吗?刚开始的时候我感觉是一样的,直到有一天在看C++方面书籍的时候才看到了其实它们是不一样的,在C中function1是一个可以拥有任意参数的函数,而function2很明显是没有参数的函数。而再C++中这两个是 一样的。这验证了那一句话C++编译器... 阅读全文
posted @ 2012-06-21 11:13 f_x_p 阅读(578) 评论(0) 推荐(0)
摘要: 最近因为一些小事情似乎天天都不快,失去了往日的激情。看似坐在电脑面前,而魂魄早不知飞到了哪里。在我看来这就是我又浮躁了,心里因为一些小事情而表现异常,终将不能成大事。而这份浮躁的心情止于一往日同学的文章,感觉文章不错,转来以供自己警觉,和大家分享。 2012不算毕业的总结 今天,多少年前的今天,一群想推动历史的年轻人被历史的漩涡狠狠的摔了出来;依旧是今天,在武昌城里极目远望依旧看不清历史的方向。历史,东一脚西一脚踉踉跄跄的往前走,一边如大江东去一样毋庸置疑,一边沉渣泛起、黄钟毁弃瓦釜雷鸣。命运,像是朦朦胧胧看见谜底的密一样,大道已清、只剩下一个弯路一个弯路走完不可知的未来。在历史与命运之... 阅读全文
posted @ 2012-06-06 18:51 f_x_p 阅读(216) 评论(0) 推荐(0)
摘要: 眼看着师兄们要毕业,要离开了,我也有想离开学校的冲动。这个时候忽然就有了给自己写一封未来的信的感觉。 2013年6月4日,也就是明年的今天,我应该顺利的拿到了学位证书,找到了工作。至于工作的理想程度与否,就看这不到100天的努力程度了。那个时候应该不到两周的时间就要走出校门,闯荡社会了,寒窗苦读20载,就是为了那冲出校门的一刻。记得之前刚上大学那会儿,对于上学和找工作之间的映射关系一直表示疑惑,不相信它们之间的必然联系,结果现在懂了。当时的老师还做了极为恰当的比喻,你们现在上学的阶段就像是每一个学生手里都拿了一个果篮,在不停的摘水果。到毕业了谁摘的最多,谁就最值钱。 这个时候我应该把我... 阅读全文
posted @ 2012-06-04 20:11 f_x_p 阅读(2236) 评论(0) 推荐(1)
摘要: 问题描述:假如给你一个固定的集合{"abc"},如果要求这个集合的所有子集合,怎么办?数学功底好的人也许一下子知道答案了---总数是2^n,对答案就是这个(如果包括空集的话)。数学定义是这样的:定义1:含有n个元素的集合A称为n元集。它的含有m个(m≤n)元素的子集称作它的m元子集一般来说,对于n元集A,它的m(0≤m≤n)元子集有个,所以不同的子集总数有=2n 所以n元集共有2n个子集。 至于推理过程就不在详细介绍了,有兴趣的同学可以自己思考一下。既然我们知道了结果,但是这不是根本目的,我还想要将求解的过程模拟出来,怎么办?只有靠程序实现这个模拟过程了。对于这个过程有这样 阅读全文
posted @ 2012-05-22 19:17 f_x_p 阅读(1002) 评论(0) 推荐(0)
摘要: 这个问题似乎很经典,在很多的地方都看得到,对于大部分人来说这个问题很easy,但我想把自己的设计过程简单说明一下,以记一下这个设计的流程。思路很简单,栈的操作跟出栈操作和队列不同,通俗的讲正好相反,所以反反为正的原则告诉我们,用两个栈就能模拟一个队列了。假如有两个栈stack1,和stack2。stack1用来负责存放入栈的序列,而stack2负责整个队列的出栈操作。当有入栈需求时,我们直接把数据存放入stack1就行了,而当有出栈需求时,我们就需要判断了,因为可能会遇到栈空的现象。当系统希望出栈时,我们首先判断stack2是否为空,如果stack2不空,说明里面有元素供我们使用,直接拿来就行 阅读全文
posted @ 2012-05-21 11:11 f_x_p 阅读(517) 评论(0) 推荐(0)
摘要: 今天在做数据结构课后练习题的时候,发现有一道题挺有意思的,问题是这样的:给定两个序列,给出算法用来判断第二个序列是否为以第一个序列为入栈顺序的出栈序列。比如给出了入栈的序列 EASY,那么给出一个算法判断ASYE是否为它的一个出栈序列。在还没有做出这个题目之前我想到了另外的一个问题:如果给出一个入栈的序列,那么怎么求出所有可能的出栈序列呢?那么我们先来解决第二个问题。假如你组合数学学的还行的话,这个时候你可能会想到在组合数学中的一个有名的数--卡塔兰数。(http://zh.wikipedia.org/wiki/卡塔兰数)上面就是它的常见公式,很多问题都可以通过计算这个公式直接得到你想要的.. 阅读全文
posted @ 2012-05-19 11:34 f_x_p 阅读(13238) 评论(3) 推荐(1)
摘要: #include <stdlib.h>#include <stdio.h>#include <string.h>typedef enum rtValue{pNULL,txtInvalid,OverFlow,Valid}rtValue;rtValue m_error = Valid;int atoi_fxp(const char* nptr){ int i,len,negtive; long long result; if(nptr == NULL){ m_error = pNULL; return -1; } i = result = ... 阅读全文
posted @ 2012-05-11 17:31 f_x_p 阅读(192) 评论(0) 推荐(0)