世界末日节快乐!

虽然世界末日什么的不大可能是真的,但是这毫不妨碍我们庆祝这个很多地方可以放假的节日。尽管我们却没有放假,而且明天还要四级考试。

祝你们世界末日节快乐,四级考试(如果报了名)顺利!


Excel 贪吃蛇

是去年这个时候在Excel课上无聊写的。

需要在Office中启用宏,2003和以前的版本好像是在安全性对话框里设置。

如果没有安装VBA支持的话,可能无法在WPS里正常打开。

游戏在Sheet2中,Sheet1里的内容请无视。

下载地址


男女平等

我发现男女是不平等的
今天去超市,发现卫生巾在一楼有一个专门的货架
各种牌子应有尽有

而纸巾居然还要到二楼去买!!

虽然我很想在这里详细分析一下超市这么做的原因,但是我还有很多作业没有写,还是算了吧。


图书馆的沙发

图书馆里有沙发。

其实也不算是沙发,只是比较软的圆环形座位,一个很大的圆环,没有分隔的槽或者界限之类的东西,如果同学们连在一起躺下的话得要四五个人才能围成一圈。
因为可以正着身子坐也可以歪着身子做还可以躺下来,比起其它的硬梆梆的椅子好了不知道多少,所以包括我在内的很多同学都比较喜欢坐在上面。而且在夏天的时候这个地方的空调是最舒服的,虽然对着吹会有点冷,不过空调本来功率就不大。

但是有一个问题,就是这些圆环形座位的上面的灯是常年不开的,这直接导致了这个地方光线十分昏暗,即使是在白天也不方便阅读,更不要说晚上了。

为什么图书馆的管理人员拒绝在这个地方打开灯呢?一个可能的原因是这里的灯坏了或者管理员忘了开,但是考虑到图书馆几层楼都有这样的座位,长期以来都是这样的情况,我认为故意不开灯的可能性比较大。
虽然圆环形座位可以坐下很多个人,但是比起为数众多的硬梆梆的椅子来说,还是显得比较稀少。如果圆环形的作为适合阅读的话,必定会成为很多同学的图书馆首选座位,这样,较为稀缺的圆环形座位就会被很多同学占用,显得很拥挤。并且,图书馆是不允许占座的,如果有同学在硬梆梆的椅子上看书疲倦了想在圆环形座位上休息一下的话,就需要等待很长的一段时间,直到有在圆环形座位上的人离开为止。

所以,如果不打开灯,让圆环形的座位不适合于阅读的话,由于同学们来图书馆通常不是来睡觉或者做别的事情的,他们会选择阅读条件比较好的硬梆梆的椅子。这样圆环形的座位不再会变得拥挤(事实上通常那里总是有空位的),如果有同学对于看书感到疲倦了,他通常可以无障碍地在圆环形座位上找到一个空位,然后休息,这样同学们的两方面需求都得到了照顾,可喜可贺。

通过把功能相似的资源分配给两种完全不同的需求,有的时候反而能够提高这些资源的使用效率。数据结构里有一种叫哈希查找表的东西,可以通过H(key)快速找到一个元素,但是哈希函数是会产生碰撞的,如果要往哈希表里添加一个东西,结果发现已经有一个H(key)相同的元素被放在那里了,就会陷入很麻烦的情况。一种解决方法是依次寻找第(H(key)+D(i)) mod m,1<=i<m的位置,如果D(i)=i也叫线性探查法,简单地说就是逐个往后面检查是否有空位,如果有就插进去。当然这种方法很容易产生大量的碰撞,尤其是在H()函数不够好的情况下。所以有人又提出D(i)=(-1)^i*i^2,或者D(i)=random(i)之类的,但是这要求D(i)在1<=i<m时能取遍1..m-1,光是要满足这个条件就得做很多的工作。当然,更麻烦的是,为了保证每一个元素都能被存储在哈希表中,在保证D(i)满足上述条件的情况下,还要求哈希表的容量m大于等于元素的个数,这是在是一件奇怪的事情,一般来说,哈希表的容量m只和哈希函数的值域有关,也就是说,为了充分利用哈希表的空间,哈希函数的值域也得相应的扩大,也就是说你要为不同的元素数量的问题设计不同的哈希函数,这实在是难以理解。还有一个麻烦的地方,哈希函数和哈希表的容量通常都是固定而无法改变的,如果元素的个数是未知的或动态增长的,表的容量该怎么增加呢?该如何重新定义H(key)或者D(i)呢?对于一个想充分利用哈希表空间的人来说这一点才是致命的。

有另外一种处理冲突的方法,就是建立一个公共溢出区,所有关键字和表中产生碰撞的记录,不管得到的H(key)是什么,都填入一个和哈希表无关的溢出表。好了,现在我们不用保证哈希表的容量要和元素个数一样多了,也不需要选取一个奇特的D(i)函数,并且,这个溢出表想要动态增加容量,只要向系统申请更多的内存空间就可以了,这样,我们只要去保证哈希算法足够好,碰撞足够少,就可以不用做那么多的考虑了,可喜可贺。

当然我在这里不想比较两者孰优孰劣,回到我们的主题,预先将一种功能相似的资源针对两种不同需求分开使用,有时候反而会比不加限制地使用会更有效率。比如之前的场景,数量比较少圆环形座位是专门用来休息的,而数量比较多的硬梆梆的椅子则是专门用来看书的,这种分配方式,比让两种椅子都可以用来看书显然有效率的多。虽然不知道管理员是不是这么想的,但是至少我想在圆环形座位上休息一下显然就方便得多了。