为Harmony编写Ldap的servic provider是一件很花功夫的事情。我必须首先阅读RFC 2251,整整40页的A4文档。这个规范定义了与Ldap server进行交互的协议,并且给出了数据报的格式。困难在于,所有数据报的数据格式,均采用ASN.1规范定义。又是一个146页的文档。阅读纯技术文档的一大感受——就好像是在读小说。刚开始的几页津津有味,开始囫囵吞枣,最后一目十行。可是,用读小说的方法毕竟达不到要求,谁有读文档的经验不妨分享一下。
我的经验就是,必须强迫自己做笔记,记录下来重点。比如ASN.1编码实际上就是声明一个数据结构,这一点从其名字(Abstract syntax notation)就可以看得出来。上过数据结构课的人,也应该知道,数据结构中常用的一个词是Abstract data type。ASN的不同之处在于,针对不同的应用领域,这个规范定义了一些现成的,比基本数据类型(如布尔型)更多的数据类型。如针对图像定义了存储图像的类型。与计算机的高级语言有一曲同工之妙。而ASN.1的数据组合方式有如下5种。
1。对于一组有序的类型,针对每种类型取一个值,有序排列。形成的所有新值,组成一个新类型。
2。对于一组无序的类型,针对每种类型取一个值,无序。形成的所有新值,组成一个新类型。
3。一种类型,其取值得重复排列,形成一种新类型。
4。一组各异的类型,任意取值。
5。对于一个类型,对其值进行排序,或根据一定结构筛选。
Thursday, August 16, 2007
Sunday, August 5, 2007
证明:Theorem 15.1: (Optimal substructure of an LCS)
Let X = 《x1, x2, ..., xm》 and Y = 《y1, y2, ..., yn》 be sequences, and let Z = 《z1, z2, ..., zk》 be any LCS of X and Y.
1. If xm = yn, then zk = xm = yn and Zk-1 is an LCS of Xm-1 and Yn-1.
2. If xm ≠ yn, then zk ≠ xm implies that Z is an LCS of Xm-1 and Y.
3. If xm ≠ yn, then zk ≠ yn implies that Z is an LCS of X and Yn-1.
1.如果zk ≠ xm ,则zk ≠ yn 。令z k+1 = xm = yn,则《Z, zk+1》是CS,但是长度大于Z。同时,若存在比Zk-1长的CS,则的长度大于Zk。得证。
2.xm ≠ yn & zk ≠ xm,若zk = yn,Z不是LCS of Xm-1 and Y,则Y中不存在一个yl,使得l大于n,有zk+1 = yl
若zk ≠ yn,Z不是LCS of Xm-1 and Y,则存在zk+1 = yl = xo,使《Z, z+1》是CS of Xm-1 and Y。进一步,是CS of Xm and Yn 。矛盾
3 同2。
1. If xm = yn, then zk = xm = yn and Zk-1 is an LCS of Xm-1 and Yn-1.
2. If xm ≠ yn, then zk ≠ xm implies that Z is an LCS of Xm-1 and Y.
3. If xm ≠ yn, then zk ≠ yn implies that Z is an LCS of X and Yn-1.
1.如果zk ≠ xm ,则zk ≠ yn 。令z k+1 = xm = yn,则《Z, zk+1》是CS,但是长度大于Z。同时,若存在比Zk-1长的CS,则的长度大于Zk。得证。
2.xm ≠ yn & zk ≠ xm,若zk = yn,Z不是LCS of Xm-1 and Y,则Y中不存在一个yl,使得l大于n,有zk+1 = yl
若zk ≠ yn,Z不是LCS of Xm-1 and Y,则存在zk+1 = yl = xo,使《Z, z+1》是CS of Xm-1 and Y。进一步,是CS of Xm and Yn 。矛盾
3 同2。
上海夏日的乌云
Saturday, August 4, 2007
Thursday, August 2, 2007
Subscribe to:
Posts (Atom)