利用 格雷码(Gray code) 求集合的子集

原创 2011年01月22日 14:27:00

接着昨天的话题,求集合中的子集。

 

今天,我们可以找到另一种方法来求所有集合的子集。。。

 

先来段背景介绍:

格雷码(Gray code),又叫循环二进制码或反射二进制码 在数字系统中只能识别0和1,各种数据要转换为二进制代码才能进行处理,格雷码是一种无权码,采用绝对编码方式,典型格雷码是一种具有反射特性和循环特性的单步自补码,它的循环、单步特性消除了随机取数时出现重大误差的可能,它的反射、自补特性使得求反非常方便。格雷码属于可靠性编码,是一种错误最小化的编码方式。。。

 

接着,我将采用另一种方式来求格雷码,这种方法可能比较土,但是,和网上其他人给出的方法有点不太一样,

首先来看一张图,我就是收到这张图的启发,想到的方法:

 

看到了吧,他们三者的关系。。。

 

好了,我分为三部分来做,首先,我将根据子集的序列,将其转换成格雷码的十进制数。

然后再将格雷码的十进制数转换成其对应的二进制数,那么格雷码也就得到了。。。

 

详细过程如下:

 

 

 

 

Gray Code实现按序产生集合的所有子集

简介 Gray Code,是几十年前贝尔实验室的科学家Frank Gray提出的一种编码方案,当时主要用于传输信号以防止出错。Gray Code 除了在通信,硬件设计领域中应用以外,在计算机相关科学...
  • syzcch
  • syzcch
  • 2012年08月26日 18:45
  • 1724

算法学习 - Gray Code(格雷码)的解释和c++实现

Gray Code(格雷码) 典型的二进制格雷码(Binary Gray Code)简称格雷码。当初是为了通信,现在则常用于模拟-数字转换和位置-数字转换中。 特点是:一组数的编码中,若任意两个相...
  • chenfs1992
  • chenfs1992
  • 2014年12月11日 02:23
  • 2783

递归——生成格雷码(gray code)

题目描述 在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同, 则称这种编码为格雷码(Gray Code),请编写一个函数,使用递归的方法生成N位的格雷码。 给定一个整数n,请...
  • jingsuwen1
  • jingsuwen1
  • 2016年08月03日 10:56
  • 570

Verilog基础知识11(异步FIFO为什么使用格雷码(gray-code) )

需求说明:Verilog设计 内容       :第一部分 异步FIFO为什么使用格雷码                   第二部分 格雷码在异步FIFO中的使用 来自       :时间的...
  • Times_poem
  • Times_poem
  • 2016年07月25日 14:05
  • 2160

格雷码Gray Code

http://blog.csdn.net/pipisorry/article/details/72356418格雷码简介  在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格...
  • pipisorry
  • pipisorry
  • 2017年05月18日 11:02
  • 1627

腾讯2016校招试题----------格雷码的实现

问题:产生n位元的所有格雷码。 格雷码(Gray Code)是一个数列集合,每个数使用二进位来表示,假设使用n位元来表示每个数字,任两个数之间只有一个位元值不同。 例如以下为3位元的格雷码: 00...
  • xiamentingtao
  • xiamentingtao
  • 2015年09月08日 22:57
  • 1459

Gray码的生成算法(直接由二进制数转格雷码)

对于一个n位二进制数,从左往右以此判断每一位和其上一位,若上一位为0,则这一位正常输出;若为1,则这一位取反再输出...
  • jt674106399
  • jt674106399
  • 2015年09月21日 13:04
  • 915

格雷码在异步FIFO中的使用

异步FIFO通过比较读写地址进行满空判断,但是读写地址属于不同的时钟域,所以在比较之前需要先将读写地址进行同步处理,将写地址同步到读时钟域再和读地址比较进行FIFO空状态判断(同步后的写地址一定是小于...
  • steven_yan_2014
  • steven_yan_2014
  • 2015年02月04日 10:16
  • 959

求一个集合所有子集的Python实现

收集整理求一个集合的所有子集的Python实现方法,以供大家参考。
  • tszw1007
  • tszw1007
  • 2017年09月06日 20:39
  • 1881

构造Gray码的分治算法

#include "iostream" #include "cmath" using namespace std;int arr[1024][1024]; //arr[i][j]表示第i个格雷码的第j...
  • u012319493
  • u012319493
  • 2015年11月15日 20:14
  • 1171
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:利用 格雷码(Gray code) 求集合的子集
举报原因:
原因补充:

(最多只允许输入30个字)