首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

帮忙解释一段编码有关问题

2012-06-07 
帮忙解释一段编码问题从网上看到的,搜了一下,全是一样的,没找到一个不一样的解释 -_-!HTML code分类编码算

帮忙解释一段编码问题
从网上看到的,搜了一下,全是一样的,没找到一个不一样的解释 -_-!

HTML code
分类编码算法问题就出在前面我们采用了顺序编码,这是一种最简单的编码方法。大家知道,简单并不意味着效率。实际上,编码科学是程序员必修的课程。下面,我们通过设计一种编码算法,使分类的编号ID中同时包含了其父类的信息。一个五级分类的例子如下:此例中,用32(4+7+7+7+7)位整数来编码,其中,第一级分类有4位,可以表达16种分类。第二级到第五级分类分别有7位,可以表达128个子分类。显然,如果我们得到一个编码为 1092787200 的分类,我们就知道:由于其编码为0100 0001001 0001010 0111000 0000000所以它是第四级分类。其父类的二进制编码是0100 0001001 0001010 0000000 0000000,十进制编号为1092780032。依次我们还可以知道,其父类的父类编码是0100 0001001 0000000 0000000 0000000,其父类的父类的父类编码是0100 0000000 0000000 0000000 0000000。现在我们在一般的情况下来讨论类别编码问题。设类别的层次为k,第i层的编码位数为Ni, 那么总的编码位数为N(N1+N2+..+Nk)。我们就得到任何一个类别的编码形式如下:2^(N-(N1+N2+…+Ni))*j + 父类编码其中,i表示第i层,j表示当前层的第j个分类。这样我们就把任何分类的编码分成了两个部分,其中一部分是它的层编码,一部分是它的父类编码。由下面公式定一的k个编码我们称为特征码:(因为i可以取k个值,所以有k个)2^N-2^(N-(N1+N2+…+Ni))对于任何给定的类别ID,如果我们把ID和k个特征码“相与”,得到的非0编码,就是其所有父类的编码! 


其中的 得到任何一个类别的编码形式 公式
HTML code
2^(N-(N1+N2+…+Ni))*j + 父类编码

和特征码公式
HTML code
2^N-2^(N-(N1+N2+…+Ni))

没看明白,请大家帮我解释一下吧,谢谢!
越详细越好,本人菜鸟。

[解决办法]
十进制:1092787200 类 二进制:0100 0001001 0001010 0111000 0000000
十进制:1092780032 父类 二进制:0100 0001001 0001010 0000000 0000000

任何一个类别的编码形式 公式:

2^(N-(N1+N2+…+Ni))*j

===>2^(32-(4+7+7+7))* 111000 

===>2^7 * 56
 
===>128*56

===>7168

===>1092780032 + 7168 = 1092787200(0100 0001001 0001010 0111000 0000000)

热点排行