基于图结构应用《编码,译码器》的设计与实现 这个毕业设计应该从什么思路下手啊~~计算机专高手请指点

基于图结构应用《编码,译码器》的设计与实现 这个毕业设计应该从什么思路下手啊~~计算机专高手请指点,第1张

兄弟你这个论文有点难度了。不是随便拉拉就行了。得找专业书籍慢慢找和高人指导了。
我查到点不指导有没有用。
Turbo卷积码(TCC)是3G无线系统中所采用的前向错误校正(FEC)机制的整体部分。然而,Turbo译码器所带来的计算负担非常重,并不太适合采用传统DSP或RISC处理器实现。由于现场可编程逻辑阵列(FPGA)内在的并行结构,FPGA为解决3G基站收发器中所需要的符号速率FEC和其它计算密集的任务提供了一个高性能信号处理平台基础。
Turbo 编码
级联码方案(Concatenated coding schemes)是为了通过结合两个或更多相对简单的分量或构造模块码来获得较高的编码增益。Turbo码认为是对级联码结构的一种改进,其中采用迭代算法对相关的码序列进行译码。Turbo码是通过将两个或更多分量码应用到同一数据序列的不同交织版本上构成的。对于任何传统单分量编码,译码器的最后一级生成的都是硬判决译码数据位。为了使象Turbo码这样的级联码方案工作得更好,译码算法不应被限制为只能在译码器间传递硬判决。为最好地利用每个译码器获得的信息,译码算法必须可以实现软判决交换,而不是采用硬判决。对于采用两个分量码的系统,译码的概念是指将来自一个译码器的软判决输入到另一个译码器的输入,并将此过程重复几次以获得更好的判决,如图1所示 。
3GPP Turbo 编码器
图2为3GPP编码器。
输入数据流输入到RSC1,它为每个输入比特生成一个对等比特(Parity Bit)。输入数据还经过交织后由RSC2处理生成第二个对等比特流。
3GPP标准定义,输入块的长度在40至5114 位之间。编码器生成一个速率为1/3的包括原始输入位和两个对等位的系统码。通过打孔方法可以获得1/2编码速度的编码。递归系统编码器的实现比较直接,然而交织器则不那么简单,要比标准的卷积或块交织器复杂。
一旦将输入数据块长度K 提供给编码器以后,编码器将计算交织矩阵行数R和列数 C,并创建相应的交织数据结构。R 和 C 是数据块长度K的函数。在输入符号被加载到交织矩阵以后,那么将根据一定的顺序进行行间交换和列间交换。交换模式是根据块长度K选择的(即依赖于K)。行和列交换完成后,通过逐列读出交织矩阵数据就可以得到最终的交织序列。在数据读出时需要进行删减 *** 作,以保证在输出中只有正确的输入符号,请注意,交织阵列包含的数据位通常比K个原始输入符号要多 ,因为R C>K。然后,新的序列经过RSC2编码生成第二个对等位流。
实现交织器的一种方法是在存储器中存储完整的交换序列。即,一旦K 给定,即调用一个初始化例程(运行在处理器上的软件例程或利用FPGA中的功能单元)生成相应的交换序列,然后将这一信息存储在存储器中。然而,这一方法需要大量的存储器。利用Virtex -E FPGA 技术提供的 4096位每块的片上存储器,将需要[5114 13/4096]=17个存储器块。
在我们的方法中,采用一个预处理引擎生成一个序列值(存储),这一序列值被存储起来,交织器地址发生器将使用这些序列值。这一硬件单元采用几个小型数据结构(素数表)来计算所需要的序列。这一准备过程需要的时钟周期数与信息块的长度成比例。例如,对于K=40的块需要280时钟周期,而对于最大块长度K=5114,则需要 5290个时钟周期。该过程只需要在块长度变化时进行。地址发生器利用这些更为紧凑的数据结构来实时生成交织地址。
3GPP Turbo 译码器
译码器包括两个MAP(最大后验概率)译码器和几个交织器。Turbo算法的优良的性能源于可以在两个MAP译码器间共享可靠性信息(extrinsic data,外数据,或称先验数据)。
在我们的设计中,MAP译码器采用的是Bahl, Cocke, Jelinek 和 Rajiv (BCJR) 算法。BCJR算法计算每个符号的最大后验对数似然率,并且是一种真正的软判决算法。考虑到数据是以块的形式传输的,因此可以在时间维中前向或反向搜索一个符号序列。对于任一序列,其出现概率都是单独符号出现概率的乘积。由于问题是线性的,因此序列概述可以利用概率的对数和来代替。
为了与一般文献中的习惯一致,我们将译码迭代的前向和反向状态概率分别利用 和 来表示。通常,BCJR算法要求在接收到整个信息后才开始解码。对于实时应用,这一限制可能太严格了。例如,3GPP Turbo译码器将需要大量存储器存储一个5114符号信息块的完全状态结构(state trellis)。对于单片FPGA设计来说,这需要的存储资源太多了。与维特比(Vitebi)算法类似,我们可以先从全零向量 O和数据{yk}(k 从 n 到 n-L) 开始反向迭代。L次反向迭代可获得非常好的 n-L近似值。只要L选择合适,最终的状态标志(state metric)就是正确的。可以利用这一性质在信息结束前就开始进行有效的位译码。
L 被称为收敛长度。其典型值大约是译码器约束长度的数倍(通常为5至10倍),并随着信噪比的降低而增加。
通常,Turbo译码算法将计算所有的 (对整块信息),将这些数值存储起来,然后在反向迭代中与反向状态概率一起用来计算新的外信息(extrinsic information,或称先验信息)。我们的设计中采用了窗口化方法。
译码过程以一个前向迭代开始,计算包含L 个接收符号的块i的 值。同时,对未来(i+1)块进行一个反向迭代(标号 )。对块i+1的反向迭代结束时,就获得了开始对块i 进行反向迭代所需要的正确的 初始向量。 与此同时对数似然函数(Lall)也在进行。 每一 和 处理过程都需要8个max *** 作 - 每个针对状态结构(tellis)中的8个结点之一。最终的对数似然计算需要14个并行max 运算符。为了提供可接受的译码速率,在设计中采用了38个max 功能单元。
从 C描述到FPGA设计
FPGA Turbo 编码译码器设计是利用基于C的设计和验证方法进行的,如图3所示。
算法开发阶段采用具有定点C类型的Art Library 来对定点计算的位真(bit-true)效应进行准确建模。在这一阶段考察了几种可能算法的定点性能。一旦选定正确的量化算法,就可利用A|rtDesignerPro创建一个专用DSP架构。A|rtDesignerPro的一个最强大的功能之一是可以插入和利用专用的数据通道核心(称为专用单元,ASU)。利用这些ASU加速核心可以使我们处理Turbo译码器算法内在的计算复杂性。
A|rtDesignerPro可自动完成寄存器分配、调度和控制器生成。在Turbo编码译码器设计中, A|rtDesignerr的自动循环合并可获得最佳的;任务调度,MAP译码步骤的内部循环都只有一个周期长。
A|rtDesignerPro生成的最终结果是可综合的寄存器级(RT-level) VHDL或Verilog 描述。基于C的工具流支持FPGA专用功能。例如,可利用BlockRAM自动构造RAM,而寄存器文件也可利用分布式存储器而不是触发器来实现 。
最后,逻辑综合和Xilinx实施工具套件将RTL HDL 转换为 FPGA 配置位流。
FPGA Turbo 编码译码器实现
A|rtDesigner创建的Turbo编码器和译码器核心硬件结构包含许多专用ASU加速。其中最重要的一个加速完成max *** 作。max 运算符根据下式计算两个幂值a 和 b:
max (a,b)=ln(expc(a)+expc(b))。
如 图4所示, max 运算是通过选择(a,b)最大值,并应用一个存储在查找表(LUT)中的校正因子近似进行的。这一近似算法非常适合利用Xilinx FPGA 实现,其中LUT是其最终基本构造单元。
结果
Turbo译码算法硬件字长的选择极大地影响总体性能。利用C-to-FPGA设计流程,这一定点分析是完全在C环境中完成的。结果示于图 5。
上图显示出了我们的浮点Turbo译码器算法和对应的定点算法之间的性能差别。仿真是在5114块长度、5次译码迭代和AWGN信道模型情况下进行的。结果清晰明显出性能的损失是非常小的。
我们的Turbo译码器的定点性能做为译码器迭代次数的函数 ,对于15 dB SNR,位错率为10-6。
译码器功能的实现非常具有挑战性,我们同时针对Virtex-E和 Virtex-II 器件进行了适配。Virtex-II 器件实施是采用运行在185 speedfile数据库上的Xilinx 41i 实施工具集完成的。利用XC2V1000BG575-5 FPGA实现的最终设计,达到了66 MHz 的时钟性能,消耗了3,060个逻辑片 和 16个块RAM。对于从40至 5114符号长度的块,采用5次译码迭代循环的情况下,译码器达到了2 至65 百万符号每秒(Msym/s)的吞吐量。编码器占用了903个逻辑片、3个块RAM并支持83 MHz时钟频率。对于从40至5114位的块长度,速率可达到9 至20 Msym/s。
能用上就好了,用不上别怪我。对不起哈~祝福你~

当然是根据国家标准好,这都是经过实践证明且轻质有效,统一使用的方法,不过我先给您一份我写的,后面附上国家标准,祝成功!
文件、记录归档的有关规定
1 目的
规范公司文件、资料的管理,确保公司资料完整,便于查找。
2 适用范围
记录、证书、证件、技术资料、公司文件及综合类文件
3 管理程序
31 保管
311 记录的保管方法
3111 按记录的编号归类存放,能成册的按月整理成册,按年装订成卷,例如:信息反馈单、电话记录、领料单等。
3112 涉及同一项目的有关记录按项目成套保管,项目结束时,每个项目单独装订成册,按年装订成卷。例如:ZHHK-JL/04的管理评审系列记录、ZHHK-JL/06的质量计划系列记录及ZHHK-JL/08的项目建议书一直到ZHHK-JL/11的设计和开发更改通知单等。
3113 除文件控制清单、记录控制清单在文件换版时组卷外,其余记 录按月整理,按年装订成卷。
312 证书、证件类文件的保管
综合部负责将各类证书、证件登记编号;属于个人的证书,复印留底后,归还个人保管;属于公司的证书由综合部统一保管。
313 技术资料的保管
技术材料,从立项开始,直至成果推广应用各阶段形成的文件材料,使用后交到综合部保管,待成果推广后,将所有材料装订成卷。
314 综合类文件的保管
将有一定相关性的文件整理在一起,随时将文件归到相应的类别,年底按类别装订成卷。
315 公司文件的保管
公司文件发布后要在综合部登记备案,年底按文件编号的顺序装订成卷。 有保存价值的通知按公司文件处理,附在公司文件后面,按发布的日期排列装订。
32 组卷要求
321卷内要有目录
322卷要有编号
编号规则:xx--xxx
文件类别代号:记录 —— JL
证书、证件类文件 —— 证
技术资料 —— JS
综合类文件 —— ZH
公司文件 —— GS
323 证书、证件类文件因经常使用,所以不用组卷,但要有目录。证书、证件 单独编号。
附上国家标准:
中华人民共和国档案行业标准
归档文件整理规则
DA/T22-2000 中华人民共和国国家档案局2000-12-06批准 2001-01-01实施
--------------------------------------------------------------------------------
1 范围
本标准规定了归档文件整理的原则和方法。�
本标准适用于各级机关、团体和其他社会组织。
2 定义
本标准采用下列定义。
21 归档文件�
立档单位在其职能活动中形成的、办理完毕、应作为文书档案保存的各种纸质文件材料。
22 归档文件整理�
将归档文件以件为单位进行装订、分类、排列、编号、编目、装盒,使之有序化的过程。
23 件�
归档文件的整理单位。一般以每份文件为一件,文件正本与定稿为一件,正文与附件为一件 ,原件与复制件为一件,转发文与被转发文为一件,报表、名册、图册等一册(本)为一件,来文与复文可为一件。
3 整理原则
遵循文件的形成规律,保持文件之间的有机联系,区分不同价值,便于保管和利用。
4 质量要求
41 归档文件应齐全完整。已破损的文件应予修整,字迹模糊或易退变的文件应予复制。
42 整理归档文件所使用的书写材料、纸张、装订材料等应符合档案保护要求。
5 整理方法
51 装订�
归档文件应按件装订。装订时,正本在前,定稿在后;正文在前,附件在后;原件在前,复制件在后;转发文在前,被转发文在后;来文与复文作为一件时,复文在前,来文在后。
52 分类�
归档文件可以采用年度-机构(问题)-保管期限或保管期限-年度-机构(问题)等方法进行分类。同一全宗应保持分类方案的稳定。
521 按年度分类�
将文件按其形成年度分类。
522 按保管期限分类�
将文件按划定的保管期限分类。
523 按机构(问题)分类�
将文件按其形成或承办机构(问题)分类(本项可以视情况予以取舍)。
53 排列�
归档文件应在分类方案的最低一级类目内,按事由结合时间、重要程度等排列。会议文件、统计报表等成套性文件可集中排列。
54 编号�
归档文件应依分类方案和排列顺序逐件编号,在文件首页上端的空白位置加盖归档章并填写相关内容。归档章设置全宗号、年度、保管期限、件号等必备项,并可设置机构(问题)等选择项。(见图A1。图示中“*”号栏为选择项,不选用时无须设置。以下同)。
541 全宗号:档案馆给立档单位编制的代号。
542 年度:文件形成年度,以四位阿拉伯数字标注公元纪年,如1978。
543 保管期限:归档文件保管期限的简称或代码。
544 件号:文件的排列顺序号。�
件号包括室编件号和馆编件号,分别在归档文件整理和档案移交进馆时编制。室编件号的编制方法为:在分类方案的最低一级类目内,按文件排列顺序从"1"开始标注。馆编件号按进馆要求标注。
545 机构(问题):作为分类方案类目的机构(问题)名称或规范化简称。
55 编目�
归档文件应依据分类方案和室编件号顺序编制归档文件目录。
551 归档文件应逐件编目。来文与复文作为一件时,只对复文进行编目。归档文件目录设置件号、责任者、文号、题名、日期、页数、备注等项目。
5511 件号:填写室编件号。
5512 责任者:制发文件的组织或个人,即文件的发文机关或署名者。
5513 文号:文件的发文字号。
5514 题名:文件标题。没有标题或标题不规范的,可自拟标题,外加"〔 〕"号。
5515 日期:文件的形成时间,以8位阿拉伯数字标注年月日,如19990909。
5516 页数:每一件归档文件的页数。文件中有图文的页面为一页。
5517 备注:注释文件需说明的情况。
552 归档文件目录用纸幅面尺寸采用国际标准A4型(长×宽为297mm×210mm)。
553 归档文件目录应装订成册并编制封面。归档文件目录封面可以视需要设置全宗名称、年度、保管期限、机构(问题)等项目(见图A3)。其中全宗名称即立档单位的名称,填写时应使用全称或规范化简称。
56 装盒�
将归档文件按室编件号顺序装入档案盒,并填写档案盒封面、盒脊及备考表项目。
561 档案盒
5611 档案盒封面应标明全宗名称。档案盒的外形尺寸为310mm×220mm(长×宽),盒脊厚度可以根据需要设置为20mm、30mm、40mm等。(见图A4(a))。
5612 档案盒应根据摆放方式的不同,在盒脊或底边设置全宗号、年度、保管期限、起止件号、盒号等必备项,并可设置机构(问题)等选择项。其中,起止件号填写盒内第一件文件和最后一件文件的件号,中间用“-”号连接;盒号即档案盒的排列顺序号,在档案移交进馆时按进馆要求编制。
5613 档案盒应采用无酸纸制作。
562 备考表�
备考表置于盒内文件之后,项目包括盒内文件情况说明、整理人、检查人和日期(见图A5)。
5621 盒内文件情况说明:填写盒内文件缺损、修改、补充、移出、销毁等情况。
5622 整理人:负责整理归档文件的人员姓名。
5623 检查人:负责检查归档文件整理质量的人员姓名。
5624 日期:归档文件整理完毕的日期。

ppt中如何设计幻灯编码。一、幻灯片版面设计在制作ppt时,幻灯片版面的设计非常重要,一般有三种设计方法。首先是对形状、线条的使用。在进行幻灯片设计时,可以通过对形状、线条的使用来设计,例如,对于一些比较直线条的幻灯片形状。这样可以让使用者在使用的时候感受到幻灯片的张力,同时也对内容进一步的凸显,使观看者的内容更加的准确。其次,对内容进行整理,并为其设计一套相对应的页面布局。在ppt中插入自定义形状、线条和等元素,可以设计出多种视觉效果。最后,对于颜色,我们在插入背景色之前应该先将内容整理好。然响你会发现自己的页。当然的,在插入的时候也是有必要的。

分类算法要解决的问题
在网站建设中,分类算法的应用非常的普遍。在设计一个电子商店时,要涉及到商品分类;在设计发布系统时,要涉及到栏目或者频道分类;在设计软件下载这样的程序时,要涉及到软件的分类;如此等等。可以说,分类是一个很普遍的问题。
我常常面试一些程序员,而且我几乎毫无例外地要问他们一些关于分类算法的问题。下面的举几个我常常询问的问题。你认为你可以很轻松地回答么?
1、分类算法常常表现为树的表示和遍历问题。那么,请问:如果用数据库中的一个Table来表达树型分类,应该有几个字段?
2、如何快速地从这个Table恢复出一棵树?
3、如何判断某个分类是否是另一个分类的子类?
4、如何查找某个分类的所有产品?
5、如何生成分类所在的路径。
6、如何新增分类?
在不限制分类的级数和每级分类的个数时,这些问题并不是可以轻松回答的。本文试图解决这些问题。
分类的数据结构
我们知道:分类的数据结构实际上是一棵树。在《数据结构》课程中,大家可能学过Tree的算法。由于在网站建设中我们大量使用数据库,所以我们将从Tree在数据库中的存储谈起。
为简化问题,我们假设每个节点只需要保留Name这一个信息。我们需要为每个节点编号。编号的方法有很多种。在数据库中常用的就是自动编号。这在Access、SQL Server、Oracle中都是这样。假设编号字段为ID。
为了表示某个节点ID1是另外一个节点ID2的父节点,我们需要在数据库中再保留一个字段,说明这个分类是属于哪个节点的儿子。把这个字段取名为FatherID。如这里的ID2,其FatherID就是ID1。
这样,我们就得到了分类Catalog的数据表定义:
Create Table [Catalog](
[ID] [int] NOT NULL,
[Name] [nvarchar](50) NOT NULL,
[FatherID] [int] NOT NULL
);
约定:我们约定用-1作为最上面一层分类的父亲编码。编号为-1的分类。这是一个虚拟的分类。它在数据库中没有记录。
如何恢复出一棵树
上面的Catalog定义的最大优势,就在于用它可以轻松地恢复出一棵树分类树。为了更清楚地展示算法,我们先考虑一个简单的问题:怎样显示某个分类的下一级分类。我们知道,要查询某个分类FID的下一级分类,SQL语句非常简单:
select Name from catalog where FatherID=FID
显示这些类别时,我们可以这样:
<%
REM oConn---数据库连接,调用GetChildren时已经打开
REM FID-----当前分类的编号
Function GetChildren(oConn,FID)
strSQL = "select ID,Name from catalog where FatherID="&FID
set rsCatalog = oConnExecute(strSQL)
%>
<UL>
<%
Do while not rsCatalogEof
%>
<LI><%=rsCatalog("Name")%>
<%
Loop
%>
</UL>
<%
rsCatalogClose
End Function
%>
现在我们来看看如何显示FID下的所有分类。这需要用到递归算法。我们只需要在GetChildren函数中简单地对所有ID进行调用:GetChildren(oConn,Catalog(“ID”))就可以了。
<%
REM oConn---数据库连接,已经打开
REM FID-----当前分类的编号
Function GetChildren(oConn,FID)
strSQL = "select Name from catalog where FatherID="&FID
set rsCatalog = oConnExecute(strSQL)
%>
<UL>
<%
Do while not rsCatalogEof
%>
<LI><%=rsCatalog("Name")%>
<%=GetChildren(oConn,Catalog("ID"))%>
<%
Loop
%>
</UL>
<%
rsCatalogClose
End Function
%>
修改后的GetChildren就可以完成显示FID分类的所有子分类的任务。要显示所有的分类,只需要如此调用就可以了:
<%
REM strConn--连接数据库的字符串,请根据情况修改
set oConn = ServerCreateObject("ADODBConnection")
oConnOpen strConn
=GetChildren(oConn,-1)
oConnClose
%>
如何查找某个分类的所有产品
现在来解决我们在前面提出的第四个问题。第三个问题留作习题。我们假设产品的数据表如下定义:
Create Table Product(
[ID] [int] NOT NULL,
[Name] [nvchar] NOT NULL,
[FatherID] [int] NOT NULL
);
其中,ID是产品的编号,Name是产品的名称,而FatherID是产品所属的分类。对第四个问题,很容易想到的办法是:先找到这个分类FID的所有子类,然后查询所有子类下的所有产品。实现这个算法实际上很复杂。代码大致如下:
<%
Function GetAllID(oConn,FID)
Dim strTemp
If FID=-1 then
strTemp = ""
else
strTemp =","
end if
strSQL = "select Name from catalog where FatherID="&FID
set rsCatalog = oConnExecute(strSQL)
Do while not rsCatalogEof
strTemp=strTemp&rsCatalog("ID")&
GetAllID(oConn,Catalog("ID")) REM 递归调用
Loop
rsCatalogClose
GetAllID = strTemp
End Function
REM strConn--连接数据库的字符串,请根据情况修改
set oConn = ServerCreateObject("ADODBConnection")
oConnOpen strConn
FID = RequestQueryString("FID")
strSQL = "select top 100 from Product
where FatherID in ("&GetAllID(oConn,FID)&")"
set rsProduct=oConnExecute(strSQL)
%>
<UL><%
Do while not rsProductEOF
%>
<LI><%=rsProduct("Name")%>
<%
Loop
%>
</UL>
<%rsProductClose
oConnClose
%>
这个算法有很多缺点。试列举几个如下:
1、 由于我们需要查询FID下的所有分类,当分类非常多时,算法将非常地不经济,而且,由于要构造一个很大的strSQL,试想如果有1000个分类,这个strSQL将很大,能否执行就是一个问题。
2、 我们知道,在SQL中使用In子句的效率是非常低的。这个算法不可避免地要使用In子句,效率很低。
我发现80%以上的程序员钟爱这样的算法,并在很多系统中大量地使用。细心的程序员会发现他们写出了很慢的程序,但苦于找不到原因。他们反复地检查SQL的执行效率,提高机器的档次,但效率的增加很少。
最根本的问题就出在这个算法本身。算法定了,能够再优化的机会就不多了。我们下面来介绍一种算法,效率将是上面算法的10倍以上。
分类编码算法
问题就出在前面我们采用了顺序编码,这是一种最简单的编码方法。大家知道,简单并不意味着效率。实际上,编码科学是程序员必修的课程。下面,我们通过设计一种编码算法,使分类的编号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编码,就是其所有父类的编码!
位编码算法
对任何顺序编码的Catalog表,我们可以设计一个位编码算法,将所有的类别编码规格化为位编码。在具体实现时,我们先创建一个临时表:
Create TempCatalog(
[OldID] [int] NOT NULL,
[NewID] [int] NOT NULL,
[OldFatherID] [int] NOT NULL,
[NewFatherID] [int] NOT NULL
);
在这个表中,我们保留所有原来的类别编号OldID和其父类编号OldFatherID,以及重新计算的满足位编码要求的相应编号NewID、NewFatherID。
程序如下:
<%
REM oConn---数据库连接,已经打开
REM OldFather---原来的父类编号
REM NewFather---新的父类编号
REM N---编码总位数
REM Ni--每一级的编码位数数组
REM Level--当前的级数
sub FormatAllID(oConn,OldFather,NewFather,N,Nm,Ni byref,Level)
strSQL = "select CatalogID ,
FatherID from Catalog where FatherID=" & OldFather
set rsCatalog=oConnExecute( strSQL )
j = 1
do while not rsCatalogEOF
i = 2 ^(N - Nm) j
if Level then i= i + NewFather
OldCatalog = rsCatalog("CatalogID")
NewCatalog = i
REM 写入临时表:
strSQL = "Insert into TempCatalog (OldCatalogID ,
NewCatalogID , OldFatherID , NewFatherID)"
strSQL = strSQL & " values(" & OldCatalog & " ,
" & NewCatalog & " , " & OldFather & " , " & NewFather & ")"
ConnExecute strSQL
REM 递归调用FormatAllID:
Nm = Nm + Ni(Level+1)
FormatAllID oConn,OldCatalog , NewCatalog ,N,Nm,Ni,Level + 1
rsCatalogMoveNext
j = j+1
loop
rsCatalogClose
end sub
%>
调用这个算法的一个例子如下:
<%
REM 定义编码参数,其中N为总位数,Ni为每一级的位数。
Dim N,Ni(5)
Ni(1) = 4
N = Ni(1)
for i=2 to 5
Ni(i) = 7
N = N + Ni(i)
next
REM 打开数据库,创建临时表:
strSQL = "Create TempCatalog( [OldID]
[int] NOT NULL, [NewID] [int] NOT NULL,
[OldFatherID] [int] NOT NULL, [NewFatherID] [int] NOT NULL);"
Set Conn = ServerCreateObject("ADODBConnection")
ConnOpen Application("strConn")
ConnExecute strSQL
REM 调用规格化例程:
FormatAllID Conn,-1,-1,N,Ni(1),Ni,0
REM ---------------------------------------------
REM 在此处更新所有相关表的类别编码为新的编码即可。
REM ----------------------------------------------
REM 关闭数据库:
strSQL= "drop table TempCatalog;"
ConnExecute strSQL
ConnClose
%>
第四个问题
现在我们回头看看第四个问题:怎样得到某个分类下的所有产品。由于采用了位编码,现在问题变得很简单。我们很容易推算:某个产品属于某个类别的条件是ProductFatherID&(CatalogID的特征码)=CatalogID。其中“&”代表位与算法。这在SQL Server中是直接支持的。
举例来说:产品所属的类别为:1092787200,而当前类别为1092780032。当前类别对应的特征值为:4294950912,由于1092787200&4294950912=8537400,所以这个产品属于分类8537400。
我们前面已经给出了计算特征码的公式。特征码并不多,而且很容易计算,可以考虑在Globalasa中Application_OnStart时间触发时计算出来,存放在Application(“Mark”)数组中。
当然,有了特征码,我们还可以得到更加有效率的算法。我们知道,虽然我们采用了位编码,实际上还是一种顺序编码的方法。表现出第I级的分类编码肯定比第I+1级分类的编码要小。根据这个特点,我们还可以由FID得到两个特征码,其中一个是本级位特征码FID0,一个是上级位特征码FID1。而产品属于某个分类FID的充分必要条件是:
ProductFatherID>FID0 and ProductFatherID<FID1
下面的程序显示分类FID下的所有产品。由于数据表Product已经对FatherID进行索引,故查询速度极快:
<%
REM oConn---数据库连接,已经打开
REM FID---当前分类
REM FIDMark---特征值数组,典型的情况下为Application(“Mark”)
REM k---数组元素个数,也是分类的级数
Sub GetAllProduct(oConn,FID,FIDMark byref,k)
' 根据FID计算出特征值FID0,FID1
for i=k to 1
if (FID and FIDMark = FID ) then exit
next
strSQL = "select Name from Product where FatherID>
"FIDMark(i)&" and FatherID<"FIDMark(i-1)
set rsProduct=oConnExecute(strSQL)%>
<UL><%
Do While Not rsProductEof%>
<LI><%=rsProduct("Name")
Loop%>
</UL><%
rsProductClose
End Sub
%>
关于第5个问题、第6个问题,就留作习题吧。有了上面的位编码,一切都应该迎刃而解。

电话号码编码规则:国家代码+地区代码+电话号码(服务商代码+4位用户号码)

目前我国使用的手机号码为11位,其中各段有不同的编码方向:

前3位:网络识别号

中国移动的有134、135、136、137、138、139、150、151、152、158、159、157、182、187、188等,

中国联通的有130、131、132、155、156、182、185、186。

中国电信的有133、153、180、189等。

第4 7位:地区编码

HLR识别码,由运营商统一分配。H0H1H2由运营商统一分配到各省,H3由各省分配到本地网。所以这部分决定了手机号码的归属地。

第8 11位:用户号码

ABCD:移动用户号,由各HLR自行分配。

yhk编码规则及检验算法详解 - jiftle - 博客园

目前银联标准卡以62开头,各银行再向银联进行卡BIN申请,如622848开头的卡为农行借记卡。英联K,通过卡BIN能获取到的信息不仅仅是发卡行,还能确定该卡卡种、卡名称、卡号长度等信息。

yhk号归属地查询_怎么查询yhk开户行联行号_yhk信息查询_2021yhkBIN表

卡号:6228481269040908140

农业银行 - 借记卡 - 金穗通宝卡(英联K)

商品代码又称商品编码,或商品代号、货号,是在商品分类的基础上,赋予某种或某类商品以某种代表符号或代码的过程,对某一类商品赋予统一的符号系列称为商品代码化或者商品编码化。商品分类和编码是分别进行的,商品分类在先,编码在后。商品科学分类为编码的合理性创造了前提条件,但是编码是否科学会直接影响商品分类体系的使用价值。

标准版商品条码的代码由13位阿拉伯数字组成,简称EAN-13码。缩短版商品条码的代码由8位数字组成,简称EAN-8码。EAN-13码和EAN-8码的前3位数字叫“前缀码”,是用于标识EAN成员的代码,由EAN统一管理和分配,不同的国家或地区有不同的前缀码。中国的前缀码目前有10个:690-699,696-699编码目前尚未采用。

EAN-13商品条码是全球通用,商品条码一般由前缀码,厂商识别代码以及产品项目代码和校验位组成。前缀码是由国际物品编码协会分配,我国商品条码的前缀码为690-699;制造厂商代码由所在国家或地区编码组织分配;产品项目代码由企业自行分配;校验位有标准算法计算得出。

EAN-13商品条码本身是不包含商品信息的,之所以手机扫描商品条码后可以查到该商品的信息,比如:生产商、规格、数量、价格、生产日期、防伪信息等等,是因为扫描商品条码后会自动联网查询,通过商品信息数据库进行“关键字查询”,匹配相关信息。

北京 汽车 牌照-发牌日期

京A(1996年前);京B(出租车);京C(1996年);京E(1997年);京F(2002年);京G(郊区户籍车);京H(2003年);京J(2005年);京K(2006年);京L(2007年);京M(2008年);京N(2008年);京O(公安);京P(2008年);京Y(郊区户籍车);京V(中央直属部队);京Q(2012年)。

蓝底 :蓝底有两个特殊车号段,京O和京G,京O是警用车编号,只要是京O的车都是隶属于公安局等部委的,属于特权车。京G就是楼上说的远郊区县的车咯。

黄底 :黄底都是大型车辆,分为大型货车和大型客车,这个就和驾照有关了,这里就不细讲了

黑底 :黑底分为两种,一种是使馆车,车牌号前面会有红色的“使”字,享有外交赦免权;另外一种是外资企业车,就是很普通的黑底白字,没有特权

白底 :白底的牌照分两种,一种是军车,另外一种是在2000年左右那会暂时发行了几个月的个性车牌,因为当时的规则不完善,出现了京A·BTV_007/京A·SEX_000这样的车牌,所以后来又取消了,但是已经发出的车牌予以保留

院校代号是全国各高校录取时为方便考生填报志愿而加注的由数字组成的代号串,即院校代码或学校代码。院校代码就如同是学校的一个身份z号,方便查询学校信息。

教育部为高校编排的代码有5位(此代码全国通用),各省教育考试院为高校编排代码有4位(此代码一般作填报高考志愿用,同一所高校在不同省份代码也不一样),由于高校办学情况每年都有变动,所以高校代码也有变化。

邮政编码(英语:Postal Code,又称邮递区号),是一个国家或地区为实现邮件分拣自动化和邮政网络数位化,加快邮件传递速度,而把全国划分的编码方式。邮递区号制度已成为衡量一个国家通信技术和邮政服务水平的标准之一。

邮政编码通常是用阿拉伯数字组成,代表投递邮件的邮局的一种专用代号,也是这个局投递范围内的居民和单位通信的代号。邮政编码是实现邮件机器分拣的邮政通信专用代号,是实现邮政现代化的必需工具,最终目的是使您的信件在传递过程中提高速度和准确性,因此在交寄信件、包裹时务必写明邮政编码。

我国采用四级六位编码制,前两位表示省(直辖市、自治区),第三位代表邮区,第四位代表县(市),最后两位数字是代表从这个城市哪个投递区投递的,即投递区的位置。

我国的邮政编码为何采用6位数字编码结构?现以“226156”为例来说明这六个数字的含义:第一位数字“2”--通信人所在大区“华东”,第二个数字“2”--省份“江苏”,第三位数字“6”--邮区“南通”,第四位数字“1”--县“海门”,最后两位数字“56”--投递局“东兴支局”。几个大区的编码分别是:华北0(内蒙、河北、山西)、东北1(辽宁、吉林、黑龙江)、华东2(山东、江苏、安徽)、东南3(浙、赣、闽)、华中4(湖南、湖北、河南)、华南5(广东、海南、广西和贵州)、西南6(四川、重庆、云南)、西北7(陕西、甘肃、宁夏)、西部8(青海、新疆、西藏)、台湾9、北京10、上海20、天津30。

多级汇接分级原则是设一个主国际接口局,结合长话流量和行政区划分为几个大区,每个大区设一个汇接中心,即一级交换中心;每个大区分为几个省区,每个省区设一个中心,即二级交换中心;每个省区分为几个地区,在地区中心城市设中心,即三级交换中心,然后每个地区下面的县各设县中心,设四级交换中心;五级交换中心即为本地交换端局,一般为市话端局。通俗地讲,如在云南省西双版纳傣族自治州勐腊县打长途去北京市,信号要从勐腊县汇接到西双版纳中心局,再汇接到昆明中心局,再到西南大区中心成都中心局,才能传输到北京市。

基于这样的“多级汇接制”,在电话长途区号的编制上也体现了“多级”的原则,并且在号码编排上体现一定对应关系。

第一级是国家总汇接中心、主国际接口局所在地,即首都北京,使用一位区号,就是1(后改为10)。

第二级为直辖市和大区中心使用两位区号,当时三大直辖市,除北京已使用1(后改为10)以外,上海、天津各使用21、22区号。东北、华东、华南、华中、西南、西北中心城市沈阳、南京、广州、武汉、成都、西安使用24、25、20、27、28、29区号。 26是为台湾预留的大区交换中心区号,也可以理解为为台北预留的,因为台湾省在行政区划序列中排在华东区,因此使用华东区大区交换中心南京25区号的后一位。

第三级为省交换中心和地区交换中心,使用三位区号,且首位与大区交换中心城市两位区号的末位对应(华北、华南区除外),区号第二位为1、3、5、7、9五个奇数,省级交换中心(一般为省会、自治区首府)除有大区交换中心兼的省份外,尾数为1。这样,6字头的三位区号也因26的预留被预留给台湾省了。

第四级为县交换中心,使用四位区号,第一位数同相应地区交换中心三位区号的第一位数,第二位使用2、4、6、8、0五个偶数。

要在中国拨国内长途电话 ,先拨地区号码(区号前加0),然后再拨对方用户号码即可。主要城市的地区号码如:北京(010)、上海[021]、 天津(022)、杭州(0571)、广州(020)、桂林(0773)、昆明(0871)、西安(029)。

股票代码用数字表示股票的不同含义。股票代码除了区分各种股票,也有其潜在的意义,比如600是上交所上市的股票代码,6006是最早上市的股票,一个公司的股票代码跟车牌号差不多,能够显示出这个公司的实力以及知名度,比如000088盐田港,000888峨眉山。

在上海证券交易所上市的证券,根据上交所“证券编码实施方案”,采用6位数编制方法,前3位数为区别证券品种,具体见下表所列:001 国债现货;110 120 企业债券;129 100 可转换债券;201 国债回购;310 国债期货;500 550 基金;600 A股;700 配股;710 转配股;701 转配股再配股;711 转配股再转配股;720 红利;730 新股申购;735 新基金申购;737 新股配售;900 B股。

沪市A股票买卖的代码是以600、601或603打头 ,如:运盛实业:股票代码是600767。中国国航:股票代码是601111。应流股份:股票代码是603308。B股买卖的代码是以900打头,如:仪电B股:代码是900901。

沪市新股申购的代码是以730打头。如:中信证券:申购的代码是730030。深市新股申购的代码与深市股票买卖代码一样,如:中信证券在深市市值配售代码是003030。

配股代码,沪市以700打头,深市以080打头。如:运盛实业配股代码是700767。深市草原兴发配股代码是080780。

深市A股票买卖的代码是以000打头 ,如:顺鑫农业:股票代码是000860。B股买卖的代码是以200打头,如:深中冠B股,代码是200018。

中小板股票代码以002打头,如:东华合创股票代码是002065。

创业板股票代码以300打头,如:探路者股票代码是:300005

ST,这是对连续两个会计年度都出现亏损的公司施行的特别处理。ST即为亏损股。

ST,是连续三年亏损,有退市风险的意思,购买这样的股票要有比较好的基本面分析能力。

N,新股上市首日的名称前都会加一个字母N,即英文NEW的意思。

拐,军事用语。军事通信中的“拐”,由于数字“1”和“7”在读音上相近,因此在通话过程中为避免混淆,在通话中就将数字“7”读作“拐”。在部队里“1234567890”要读成“幺两三四五六拐怕勾洞”。

sos即SOS,是国际摩尔斯电码救难信号,并非任何单词的缩写。SOS另有一种表现方法为191519。19、15、19分别为S、O、S在26个英文字母中的顺序。原因是SOS求救信号广为人知,当在极端被动的情况之下SOS会暴露受难者求救的信息,所以191519是另一种隐晦的传递和表达求救讯息的符号。

国际标准书号(International Standard Book Number),简称ISBN,是专门为识别图书等文献而设计的国际编号。ISO于1972年颁布了ISBN国际标准,并在西柏林普鲁士图书馆设立了实施该标准的管理机构——国际ISBN中心。采用ISBN编码系统的出版物有:图书、小册子、缩微出版物、盲文印刷品等。

2007年1月1日之前,ISBN由10位数字组成,分四个部分:组号(国家、地区、语言的代号),出版者号,书序号和检验码。 2007年1月1日起,实行新版ISBN,新版ISBN由13位数字组成,分为5段,即在原来的10位数字前加上3位EAN(欧洲商品编号)图书产品代码“978”。 在联机书目中ISBN可以作为一个检索字段,从而为用户增加了一种检索途径。

中国图书馆分类法包括马列主义、毛泽东思想,哲学, 社会 科学,自然科学,综合性图书五大部类,22个基本大类,常见的图书编码大类具体如下:

A马克思主义、列宁主义、毛泽东思想、邓小平理论

B 哲学、宗教

C 社会 科学总论

D 政治、法律

E 军事

F 经济

G 文化、科学、教育、 体育

H 语言、文字

I 文学

J 艺术

K 历史 、地理

N 自然科学总论

O 数理科学和化学

P天文学、地球科学

Q 生物科学

R 医药、卫生

S 农业科学

T 工业技术

U 交通运输

V 航空、航天

X环境科学、劳动保护科学(安全科学)

Z 综合性图书

(1)编码方式如下:用5位数字进行编码,第一位数字表示年级,第二位数字表示班,第三、四位数字表示学号,第五位数字表示性别,1为男生,2为女生;
如61221,表示六年级一班的22号男生;
48092表示四年级八班9号女生.

(2)五年级(4)班,学号为23,是男生,他的编码应是:54231.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12727255.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-27
下一篇 2023-05-27

发表评论

登录后才能评论

评论列表(0条)

保存