当前位置: 首页 > news >正文

自己做响应式网站难吗百度关键词下拉有什么软件

自己做响应式网站难吗,百度关键词下拉有什么软件,css网站怎么做,淮北公司做网站汉明权重(Hamming Weight)(统计数据中1的个数)VP-SWAR算法 定义 汉明重量是一串符号中非零符号的个数。它等于同样长度的全零符号串的汉明距离(在信息论中,两个等长字符串之间的汉明距离等于两个字符串对应位置的不同…

汉明权重(Hamming Weight)(统计数据中1的个数)VP-SWAR算法

定义

汉明重量是一串符号中非零符号的个数。它等于同样长度的全零符号串的汉明距离(在信息论中,两个等长字符串之间的汉明距离等于两个字符串对应位置的不同字符的个数)。
汉明重量在常见的数据位符号串中,它是1的个数。

算法思想

基于分治的算法,将n位二进制进行分组,通过一系列位移和位运算操作,可以在常数时间内计算多个字节的汉明重量,并且不需要使用额外的内存。

简化示例

假设一个8bit的2进制串 x=abcd,efgh其中a-b 属于{0,1}
求解的输出是 ans = a+b+c+d+e+f+g+h

step1. 2bits m1= 0101 0101

x&m1 = 0b0d 0f0h
(x>>1)&m1 = 0a0c 0e0g
求和得到[a+b]_2[c+d]_2 [e+f]_2[g+h]_2,这里[x]_2表示2位二进制中1的个数

step2. 4bits m2 = 0011 0011

x&m2 = 00[c+d]_2 00[g+h]_2
(x>>2)&m2 = 00[a+b]_2 00[e+f]_2
求和得到[a+b+c+d]_4 [e+f+g+h]_4

step3. 8bits m4 = 0000 1111

x&m4 = 0000 [e+f+g+h]_4
(x>>4)&m4 = 0000 [a+b+c+d]_4
求和得到 [a+b+c+d+e+f+g+h]_8
对应的十进制值就是最终的答案

算法实现 variable-precision SWAR算法

const uint64_t m1  = 0x5555555555555555; //binary: 0101...
const uint64_t m2  = 0x3333333333333333; //binary: 00110011..
const uint64_t m4  = 0x0f0f0f0f0f0f0f0f; //binary:  4 zeros,  4 ones ...
const uint64_t m8  = 0x00ff00ff00ff00ff; //binary:  8 zeros,  8 ones ...
const uint64_t m16 = 0x0000ffff0000ffff; //binary: 16 zeros, 16 ones ...
const uint64_t m32 = 0x00000000ffffffff; //binary: 32 zeros, 32 ones
const uint64_t h01 = 0x0101010101010101; //the sum of 256 to the power of 0,1,2,3...//This is a naive implementation, shown for comparison,
//and to help in understanding the better functions.
//This algorithm uses 24 arithmetic operations (shift, add, and).
// 朴素算法
int popcount64a(uint64_t x)
{x = (x & m1 ) + ((x >>  1) & m1 ); //put count of each  2 bits into those  2 bits x = (x & m2 ) + ((x >>  2) & m2 ); //put count of each  4 bits into those  4 bits x = (x & m4 ) + ((x >>  4) & m4 ); //put count of each  8 bits into those  8 bits x = (x & m8 ) + ((x >>  8) & m8 ); //put count of each 16 bits into those 16 bits x = (x & m16) + ((x >> 16) & m16); //put count of each 32 bits into those 32 bits x = (x & m32) + ((x >> 32) & m32); //put count of each 64 bits into those 64 bits return x;
}

详细步骤

详细步骤
优化算法

//This is better when most bits in x are 0
//This algorithm works the same for all data sizes.
//This algorithm uses 3 arithmetic operations and 1 comparison/branch per "1" bit in x.
// 适用于0比较多的数
// 数字 n中最低位的 1 总是对应 n - 1 中的 0
// 将 n 和 n - 1 进行与运算总是能把 n 中最低位的 1 变成 0,并保持其他位不变
int popcount64d(uint64_t x)
{int count;for (count=0; x; count++)x &= x - 1;return count;
}// 常用写法
int hammingWeight(uint32_t n) {int count = 0;while( n ){count ++;n &= n-1;}return count;
}// 查表法 用空间换时间 从而得到O(1)的最优算法
// 以4bit的串为例,可以构造一个数组int counts[16]={0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4}.
// 对于4bit的x, x的hamming weight为:counts[x].
static unsigned char wordbits[65536] = { bitcounts of ints between 0 and 65535 };
static int popcount(uint32 i)
{return (wordbits[i&0xFFFF] + wordbits[i>>16]);
}

参考

Hamming weight WIKI
汉明权重(hamming weight) ----- 计算数据位中1的个数

http://www.zhongyajixie.com/news/43369.html

相关文章:

  • 大连市城乡建设厅网站免费发布友链
  • 免费推广seo网站关键词优化排名公司
  • 网站源代码生成网站足球世界排名
  • 聊城门户网站bing搜索国内版
  • 注册网站服务器注册网站的免费网址
  • 网站开发用主要软件seo具体seo怎么优化
  • 公司做网站怎么做杭州seo关键字优化
  • 龙口网站建设东莞网站设计公司排名
  • 哪个网站可以做奖状比较好的软文发布平台
  • 上海学做网站百度站内搜索提升关键词排名
  • 做网站的技术怎样优化网站
  • 自己公司网站维护培训网站推广
  • 手机制作网站教程网络营销与网站推广的区别
  • 如何申请做网站公司网站怎么申请怎么注册
  • 网站建设和优化那本书好商业软文案例
  • 二手车的网站建设例子厦门关键词排名推广
  • 网站url地址怎么找到我是seo关键词
  • 网站制作哪家专业河南平价的seo整站优化定制
  • 武汉网站公司怎么样的seo推广软件哪个好
  • 单位网站开发费用入什么费用苏州网络推广seo服务
  • 客户网站 备案软件制作
  • 长沙铭万做网站域名注册1元
  • 做阀门网站电话电子邮件营销
  • 武汉建设厅宿舍网站百度seo关键词优化电话
  • 昌乐网站制作价格广东清远今天疫情实时动态防控
  • 营销网站定制打开百度搜索引擎
  • 百度上的网站怎么做优化大师电脑版
  • 做个网站费用一站式媒体发布平台
  • 域名备案快速办理网站如何做优化排名
  • 澄海区建设局网站百度竞价推广联系方式