低年级讨论班.PDFVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
低年级讨论班 第第1010章章寻求快速的种群计数寻求快速的种群计数 数学科学学院杨嘉骐 种群计数(种群计数(pop countpop count)) 种群计数(population count或简称为popcount) 是一个非常基本的算法,其目的是对一个变量求 其二进制表示中“1”的个数。 在信息论与编码理论中,这个值也被叫做 Hammingg weigght ((汉明汉明重量)).汉明距离就是就是汉明距离就是就是 求两个编码异或之后的Hamming weight。这个算 法在某法在某些编码过程中会被大编码过程中会被大量重复使用复使用,,所以有所以有 必要进行精细的改进。 本文主要针对指令系统里不含此命令的本文主要针对指令系统里不含此命令的RISCRISC ((精精 简指令集计算机)处理器系统。 本文内容梗概本文内容梗概 平凡的算法平凡的算法 对算法的改进 算法的应用 本文要解决的文要解决的目标标问题非常简非常简明,,最平凡的算平凡的算法 易于想到,作者对算法进行反复且多角度优化, 告诉我们最简单单的算算法也大有有改进空间,并能并能反 映算法设计者的巧思。 最平凡的算法最平凡的算法 32位机器中C语言下一个 pop = 0;pop = 0; 无符号整数由无符号整数由3232位位二进制进制 for (i = 0; i 32; i++){ 码存储,最简单的思路是 if ((x 1)) ppopp = ppopp + 1;; 每次判定最末每次判定最末一位是否是位是否是 x = x 1; 1,然后右移一位继续比 } 较较。经过过32次循环计算出次循环计算出 结果。每一循环被编译成 大约7条指令。 最平凡的算法最平凡的算法 pop = 0;pop = 0; 为方便和后来的算法比为方便和后来的算法比 for (i = 0; i 32; i++){ 较我们只统计算术运算 if ((x 1)) ppopp = ppopp + 1;; (包括比较)的次数, x = x 1; 我们认为x 的二进制表示 } 每位为0和1的概率相等, 则每则每一循环经过循环经过11.55次次 add ,1次and ,1次shift , 22次比较次比较,,那么平均需要那么平均需要 耗费32 ×5.5=176次运算 第一次改进第一次改进 一般来说处理的数字都不会太 大,二进制表示下前面的0很多, pop = 0;pop = 0; 所以当右移至所以当右移至x各位都是各位都是00的时的时 while (x) { 候(这时x值也为0)就可以跳 pop = pop + (x 1);pop = pop + (x 1); 出

文档评论(0)

***** + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档