摘要:
Bloom Filter是一种概率数据结构(probabilistic data structure),对外提供的是一个set的接口。参见http://en.wikipedia.org/wiki/Bloom_filter-----------------------------------------------------注:set、map这些,通常称作是抽象数据结构,也即它们只是规定了一组可能的操作作为其接口,而不限制内部的具体实现。set的接口通常包括:a) 元素与集合的运算,test for in or not in;b) 集合与集合的运算,intersection、union etc 阅读全文
posted @ 2011-05-06 18:04
qsort
阅读(613)
评论(0)
推荐(0)
摘要:
假设集合A有n个元素,集合B有m个元素,两个集合取自某个空间(universe)。1.1, 首先从最naive的办法开始。对B中元素,挨个测试是不是在A中,交集、并集都是O(m*n),平方级别的算法。1.2, 将A先排序,O(n*logn),然后,对B中元素,挨个测试是不是在A中,这时可以二分了,O(m*logn),一共是O(n*logn)+O(m*logn)=O((m+n)*logn)。所以如果m<n的话,对调一下A和B比较好,也就是复杂度是O( (m+n) * log( min(m, n) ) ).这种思路的本质是,只利用了“A是集合”这个事实,然后对B中元素进行is in A的测试 阅读全文
posted @ 2011-05-06 17:47
qsort
阅读(499)
评论(0)
推荐(0)
摘要:
block cipher已经有很多了,3DES、blowfish、AES...加密算法给出的是:给定key和plaintext,如何变换得到ciphertext。从加密算法开始,如何得到一个加密文件的可用程序,还有一段路要走,主要面对的问题是:1,从文件到plaintext,文件的大小通常不是一个block大小,那么,如何分块,不同块之间如何处理,如果不能分成完整的块怎么办?2,从口令(password或者passphrase)到key,用户的加密解密口令通常是一个字符串,如“fotally”,怎么从口令得到一个key?RSA Labs的标准PKCS#5,给出了一些推荐做法,见http://w 阅读全文
posted @ 2011-05-06 16:15
qsort
阅读(305)
评论(0)
推荐(0)
摘要:
问题场景:我们有一块设备卡,上面跑着一个FreeBSD。host这边是Linux,与device那边的交互由host这边的Linux driver负责,driver在Linux下提供了几个char device来使得用户可以与device交互。这些char devices里面,有一个连接到device那边FreeBSD的终端,host端通过minicom(一个2222old的Unix程序)来通过这个char dev与device端交互,这样方便device一端的开发调试。问题:这个char device只能由一个进程来使用。那么,如果两个开发人员在同时进行开发,那么就只能在用的时候打开,用完就 阅读全文
posted @ 2011-05-06 12:53
qsort
阅读(288)
评论(0)
推荐(0)
浙公网安备 33010602011771号