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

微网站设计与开发购票网站模板

微网站设计与开发,购票网站模板,电脑制作ppt的软件,旅游网站系统问题#xff1a;产生n位元的所有格雷码。格雷码(Gray Code)是一个数列集合#xff0c;每个数使用二进位来表示#xff0c;假设使用n位元来表示每个数字#xff0c;任两个数之间只有一个位元值不同。例如以下为3位元的格雷码#xff1a; 000 001 011 010 110 111 101 100 。…问题产生n位元的所有格雷码。格雷码(Gray Code)是一个数列集合每个数使用二进位来表示假设使用n位元来表示每个数字任两个数之间只有一个位元值不同。例如以下为3位元的格雷码 000 001 011 010 110 111 101 100 。如果要产生n位元的格雷码那么格雷码的个数为2^n.假设原始的值从0开始格雷码产生的规律是第一步改变最右边的位元值第二步改变右起第一个为1的位元的左边位元第三步第四步重复第一步和第二步直到所有的格雷码产生完毕换句话说已经走了(2^n) - 1 步。用一个例子来说明假设产生3位元的格雷码原始值位 000第一步改变最右边的位元值 001第二步改变右起第一个为1的位元的左边位元 011第三步改变最右边的位元值 010 第四步改变右起第一个为1的位元的左边位元 110 第五步改变最右边的位元值 111 第六步改变右起第一个为1的位元的左边位元 101 第七步改变最右边的位元值 100 如果按照这个规则来生成格雷码是没有问题的但是这样做太复杂了。如果仔细观察格雷码的结构我们会有以下发现 1、除了最高位左边第一位格雷码的位元完全上下对称看下面列表。比如第一个格雷码与最后一个格雷码对称除了第一位第二个格雷码与倒数第二个对称以此类推。 2、最小的重复单元是 0 , 1。 000 001 011 010 110 111 101 100 所以在实现的时候我们完全可以利用递归在每一层前面加上0或者1然后就可以列出所有的格雷码。 比如 第一步产生 0, 1 两个字符串。 第二步在第一步的基础上每一个字符串都加上0和1但是每次只能加一个所以得做两次。这样就变成了 00,01,11,10 注意对称。 第三步在第二步的基础上再给每个字符串都加上0和1同样每次只能加一个这样就变成了 000,001,011,010,110,111,101,100。 好了这样就把3位元格雷码生成好了。 如果要生成4位元格雷码我们只需要在3位元格雷码上再加一层0,1就可以了 0000,0001,0011,0010,0110,0111,0101,0100,1100,1101,1110,1010,0111,1001,1000. 也就是说n位元格雷码是基于n-1位元格雷码产生的。 如果能够理解上面的部分下面部分的代码实现就很容易理解了。 //格雷码 #include iostream #include vector #include string #include cmath using namespace std;vectorstring GrayCode(int n) {// produce 2^n grade codesvectorstring graycode(int(pow(float(2.), n)));if (n 1) {graycode[0] 0;graycode[1] 1;return graycode;}vectorstring last GrayCode(n - 1);for (int i 0; i last.size(); i) {graycode[i] 0 last[i];graycode[graycode.size() - i - 1] 1 last[i];}return graycode; } int main() {vectorstring graycode GrayCode(4);for (auto x: graycode){cout x endl;}} 参考文献 1.格雷码的实现 2.格雷码百度百科
http://www.sadfv.cn/news/261046/

相关文章:

  • 拟定一个物流网站建设方案小型企业网站开发公司
  • 个人网站免费域名注册国内免费建站网站
  • 合肥做网站的网络公司南京电商网站建设公司
  • 哪些网站做的比较好看的图片花生棒 做网站
  • 建设行业个人云网站连锁销售平台
  • 设计网站推荐原因唐河网站制作
  • 博业建站网做logo网站
  • 上海网站搜索引擎优化怎么查看网站跳出率
  • 郑州 网站报价免费网站怎么建立
  • 网站建设教程书籍没有微信怎么进入公众号
  • 免费网站建设找哪家广州哪里有做公司网站 什么价
  • 网页制作素材库哪个网站江门市亿阳科技有限公司
  • 高端t恤定制网站工业企业解决方案
  • 建筑企业资质查询官方网站成都景观设计公司有哪些
  • 南阳企业网站排名优化互联网网站开发发展
  • 中企动力做的网站名字设计签名免费
  • 网站建设中销售人员会问客户的问题怎么做网站板块
  • 网站建设简报@wordpress
  • 如何创建一个公司网站北京大龙建设集团有限公司网站
  • 建什么网站做cpa网站平台有哪些类型
  • 安卓手机怎么制作网站怎么促成客户做网站
  • 稷山网站建设济宁做网站哪家比较好
  • 建设网站上传软件营口网站seo
  • 兰州做网站客户设计服务网站
  • 家居企业网站建设报价uc官网网站开发者中心
  • 陕西 网站建设 陕ICP唐山网站建设制作
  • 竞拍网站做烂了百度网站建设中心
  • 杭州网站建设品牌域名申请的流程
  • 网站推广策划案哪里有网站开发赚钱的方法
  • 巴彦淖尔专业做网站的公司比较好的做淘客网站