2012/01/18

要求:模拟一个缓存管理器。给出的测试文件中包含50万个页面请求,每一行用(X,Y)表示,其中X=1表示对页面号为Y的页面写操作,X=0表示对页面号为Y的页面读操作。例如  0,6558     1,3024  等。
规定:磁盘上的页面大小等于Buffer的一个块大小,为4KB;磁盘上的数据库文件data.dbf包含5000个页面,缓冲区有1024个Buffer。设计一个缓存管理器,并统计页面请求的命中和不命中次数。

先说下我的思路,如图,问题牵涉到下面三个部分的协同工作,其中省略了磁盘的读写部分。 (更多…)

已经有83个生物在围观
2011/12/12

上一篇博客里提到了一个简单的聚类算法kmeans。这里是用C语言写的一个命令行的版本,它似乎可以运行,也能产生结果,不过我也没有仔细验证过是否正确 :-)    这里是在GitHub上托管的源代码。

使用方法以Linux环境为例,首先make一下,生成可执行文件kmeans (更多…)

已经有221个生物在围观
2011/11/18

K-means Clustering Algorithm 中文名也许叫“K均值聚类算法”,是统计学和数据挖掘领域中常用的一种算法。维基百科上是这样介绍的:k-means clustering is a method of cluster analysis which aims to partition n observations into k clusters in which each observation belongs to the cluster with the nearest mean (更多…)

已经有294个生物在围观
2011/10/01

时间倒回到2011年5月的一天,大学的最后一门课《计算机信息安全技术》,讲到《缓冲区溢出》这一章,并且给出了一段示例代码来演示缓冲区溢出,回到宿舍后出于好奇我运行了一下这段代码,发现结果并不是书上所说的那样,当时在人人网也发过一篇吐槽的日志,但是一直拖到现在都没有仔细的去研究过,正好现在十一放假没事,就花点时间搞搞啦。

书第136页-137页。代码如下,出于简单考虑(其实书上的C++代码格式也是错的),我除去了头文件和cout函数,这样就跟纯C语言代码是一样了。 (更多…)

Tags: ,. 已经有360个生物在围观
2011/09/01
暑假终究是要过完的,再次感叹一下时间过得飞快!
翻一翻毕业照片,感觉好像也就是前几天发生的事情一样,熟悉的笑容,熟悉的校园,只是再也回不到那个计科07班了;
翻一翻暑假买的书,感觉好像也就是昨天才送来的一样,依旧没翻几页。
-
回想这个暑假,甚至都没写几行代码。
坐在书桌前的时间倒是不少,但真正好像也没看进去多少书,不然现在怎么回想不起来呢。
为毛会这个样子呢?(好像一直都这个样子的吧,囧) (更多…)
Tags: . 已经有370个生物在围观
2011/08/18

Python 新旧版本之间的语法不兼容,导致iBus图标不显示,候选词框也不显示;导致Wicd无法启动。如下图所示。

问题产生:

由于Ubuntu默认安装了python2.6 ,后来我自己又装了python3.1,但是在终端里面输入python启动的是2.6版本的,这个是系统的默认,我们可以查看/usr/bin/目录,如图: (更多…)

Tags: . 已经有194个生物在围观
2011/07/22

学习python已经有2个月了,当然,是那种断断续续式的学习,囫囵吞枣的把《A byte of Python》看完了,大概知道了python的几个数据类型,了解了一些语法,然后又开始看《Dive into Python3》。

忘了提一句,我学的是Python3.X 而不是2.X。当初也是为了追求“最新”而选的,3.x和2.x的差别还是比较大的,很多时候遇到问题google一下发现网上的解决方法是2.x的,并不适用于3.x,无奈之下只好去翻官方手册。但是3.x的规范毕竟是以后Python语言的发展趋势,唯一的遗憾是目前很多第三方库还不支持3.x,比如图形库wxPython只支持2.x。

由于经常泡在豆瓣上,突然想起玩玩豆瓣的api,也顺便拿python练练手,学了这么长时间的python还没写过什么程序呢。于是就有了本文。 (更多…)

Tags: . 已经有507个生物在围观
2011/07/19

问题:有一个数组 31,-41,59,26,-53,58,97,-93,-23,84 。现在要求出它的连续子串的最大值。
比如,31,-41,59,26是它的一个连续的子串,他们的和为75。但是75并不是最大值,有一个子串 59,26,-53,58,97它们的和187才是最大的。

求解:《Programming Pearls》第77页开始一共给出了4种解法,前两种非常简单,是大多数人思考几分钟就能想出的方法,但是复杂度却很高,分别为O(n^3)和O(n^2)。后两种解法则非常巧妙,更神奇的是第四种方法居然只有线性复杂度O(n)!

解法1、解法2略。
解法3:分治法,复杂度为O(nlogn)。
分治法在结构上是递归的,在保证不改变原问题的条件下,将问题的规模减小,生成多个子问题,并多次递归调用自身来解决子问题,之后再将子问题的求解结果合并成原问题的解。 (更多…)

已经有615个生物在围观
2011/05/09

第501页,Figure 15.6

在程序的第46行有dup2(fd[0], STDIN_FILENO),由于忘记了这个函数,于是翻到前面76页,有这样一段话:

dup2(fildes, fildes2);

If fildes is equal to fildes2, the dup2() function returns fildes2 without closing it. (更多…)

Tags: . 已经有535个生物在围观

大约是在2011年3月12号开始看这本APUE的,本来是想一边看一边写读书笔记,但是3月、4月都有很多的琐事要办,加上自己本身非常懒惰,写笔记的事就一直耽搁下来了。今天,书看到第15章了,一大半已经看过,加上现在比较闲,于是下决心一定要写读书笔记了,一方面是让自己把书细细的读,而不是囫囵吞枣式的看书;另一方面,博客要更新啊!不是放在那儿做摆设的啊!要有内容啊! (更多…)

Tags: . 已经有213个生物在围观