• 大小: 654KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-01-05
  • 语言: C/C++
  • 标签: 格雷码  格雷码c++  

资源简介

自动生成N位格雷码程序,算法复杂度为O(N^2) 实现方法: 1. 1位格雷码有两个码字 2. (n+1)位格雷码中的前2n个码字等于n位格雷码的码字,按顺序书写,加前缀0 3. (n+1)位格雷码中的后2n个码字等于n位格雷码的码字,按逆序书写,加前缀1 4. (n+1)位格雷码的集合 = n位格雷码集合(顺序)加前缀0 + n位格雷码集合(逆序)加前缀1 简而言之,就是在后一个格雷码等于前一个相邻的格雷码按顺序书写,加前缀0,再按逆序书写,加前缀1

资源截图

代码片段和文件信息

//用递归的方法产生格雷码
//方法:产生的i位格雷码,在这个i位的格雷码第一位添加一位0,然后把这i位格雷码反向,在其第一位添加1
//这样就可以产生i+1位格雷码

#include 
#include 
#include 
#include 

using namespace std;

void generaterGrayCode(int n)
{
vector grayCodeVec;

//当n为1的时候的格雷码
string aa = “0“;
string bb = “1“;
grayCodeVec.push_back(aa);
grayCodeVec.push_back(bb);

//产生大于两位的格雷码,n位格雷码的数量为2^n个
if (n > 1)
{
for (int i = 2; i <= n; i++)
{
//设置一个临时存储空间来存储n-1位格雷码
vector tempGrayCodeVec;
for (size_t k = 0; k < grayCodeVec.size(); k++)
{
tempGrayCodeVec.push_back(grayCodeVec[k]);
}

//在前面产生的n-1位格雷码前面添加一位数0产生2^(n-1)个n位格雷码,并替换掉原来的n-1位格雷码
int tempGrayCodeVecSize = tempGrayCodeVec.size();
for (int j = 0; j < tempGrayCodeVecSize; j++)
{

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      71168  2016-04-06 10:06  generategraycode\Debug\generategraycode.exe

     文件     539636  2016-04-06 10:06  generategraycode\Debug\generategraycode.ilk

     文件     986112  2016-04-06 10:06  generategraycode\Debug\generategraycode.pdb

     文件       6830  2016-04-06 10:06  generategraycode\generategraycode\Debug\BuildLog.htm

     文件        663  2016-03-31 20:55  generategraycode\generategraycode\Debug\generategraycode.exe.embed.manifest

     文件        728  2016-03-31 20:55  generategraycode\generategraycode\Debug\generategraycode.exe.embed.manifest.res

     文件        621  2016-04-06 10:06  generategraycode\generategraycode\Debug\generategraycode.exe.intermediate.manifest

     文件     243384  2016-04-06 10:06  generategraycode\generategraycode\Debug\generategraycode.obj

     文件         65  2016-04-06 10:06  generategraycode\generategraycode\Debug\mt.dep

     文件     199680  2016-04-06 10:06  generategraycode\generategraycode\Debug\vc90.idb

     文件     249856  2016-04-06 10:06  generategraycode\generategraycode\Debug\vc90.pdb

     文件       2084  2016-04-06 10:06  generategraycode\generategraycode\generategraycode.cpp

     文件       3946  2016-03-31 20:55  generategraycode\generategraycode\generategraycode.vcproj

     文件       1409  2016-04-06 10:12  generategraycode\generategraycode\generategraycode.vcproj.PC-028.Administrator.user

     文件    2419712  2016-04-06 10:12  generategraycode\generategraycode.ncb

     文件        914  2016-03-31 20:38  generategraycode\generategraycode.sln

    ..A..H.     10752  2016-04-06 10:12  generategraycode\generategraycode.suo

     文件       6838  2016-04-01 10:39  generategraycode\grayCode.png

     文件        403  2016-04-06 10:16  generategraycode\ReadMe.txt

     目录          0  2016-04-06 10:06  generategraycode\generategraycode\Debug

     目录          0  2016-04-01 10:03  generategraycode\Debug

     目录          0  2016-04-06 10:06  generategraycode\generategraycode

     目录          0  2016-04-01 11:29  generategraycode

----------- ---------  ---------- -----  ----

              4744801                    23


评论

共有 条评论