问题描述
Gray码是一个长度为2n的序列。序列中无相同的元素,每个元素都是长度为n位的串,相邻元素恰好只有一位不同。用分治策略设计一个算法对任意的n构造相应的Gray码。
编程任务
利用分治策略试设计一个算法对任意的n构造相应的Gray码。
数据输入
由文件input.txt提供输入数据n。
实现提示
把原问题分解为两个子问题,分别对两个子问题的每个数组后一位加0和1

解决思路:
①根据输出结果发现一定用二维数组进行输出
②这种题肯定是有规律可找的 百度发现格雷码规律
百度格雷码特征

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int Out[5000][5000]={0};
void Output(int n,int num)
//n=几位 num=pow(2,n)
{if(n==1) //num=2{Out[0][0]=0;Out[1][0]=1;return;}int i=0,j=0;for(i=0;i<num/2;i++){Out[i][n-1]=0;Out[num-i-1][n-1]=1;}//根据规则 这一次各个位置 末位填0或1Output(n-1,num/2);for(i=num/2;i<num;i++)for(j=0;j<n-1;j++)Out[i][j]=Out[num-i-1][j];
}
int main()
{FILE *In,*Ou;int n;if((In=fopen("D:\\input.txt","r"))!=NULL){fscanf(In,"%d",&n);fclose(In);int i=1;Output(n,pow(2,n));//调用输出函数}else{printf("输入文件打开失败!\n");}if((Ou=fopen("D:\\output.txt","w"))!=NULL){int i=0,j=0;for(i=0;i<pow(2,n);i++){for(j=0;j<n;j++)fprintf(Ou,"%d",Out[i][j]);fprintf(Ou,"\n");}fclose(Ou);}else{printf("输出文件打开失败\n");}return 0;
}

Gray码问题---分治法实验2相关推荐

  1. 分治法实验之大整数乘法(算法设计分析)

    分治法实验之大整数乘法 01. 问题描述 02. 输入格式 03. 输出格式 04. 输入样例 05. 输出样例 06. 问题分析 07. 算法设计 08. 代码实现 09. 测试结果 10. 复杂度 ...

  2. c语言分治法实验报告,分治法实验报告范文

    分治法实验报告范文 一.实验目的及要求 利用分治方法设计大整数乘法的递归算法,掌握分治法的基本思想和算法设计的基本步骤. 要求:设计十进制的'大整数乘法,必须利用分治的思想编写算法,利用c语言(或者c ...

  3. c语言分治法实验报告,分治法实验报告范文word版

    <分治法实验报告范文word版>由会员分享,可在线阅读,更多相关<分治法实验报告范文word版(2页珍藏版)>请在人人文库网上搜索. 1.精编word文档 下载可编辑分治法实验 ...

  4. 分治法实验-寻找第k小元素

    问题描述 随机生成含有n个不同元素的数组L(n≥10000),要求找出第k小的元素(k≤n),完成下面的任务: (1)设计一个基于排序选择算法程序,编程调试正确(排序算法自己确定). (2)设计一个时 ...

  5. 找两个有序数组中的中位数---分治法实验1

    问题描述 设X[ 0 : n - 1]和Y[ 0 : n – 1 ]为两个数组,每个数组中含有n个已排好序的数.找出X和Y的2n个数的中位数. 编程任务 利用分治策略试设计一个O (log n)时间的 ...

  6. 【分治法】中位数问题和Gray码问题——武汉理工大学算法分析与设计课程实验

    i. 中位数问题  问题描述 设X[ 0 : n - 1]和Y[ 0 : n – 1 ]为两个数组,每个数组中含有n个已排好序的数.找出X和Y的2n个数的中位数.  编程任务 利用分治策略试设计一 ...

  7. 【分治法】中位数问题和Gray码问题——武汉理工大学算法设计与分析课程实验

    1. 中位数问题 « 问题描述 设X[ 0 : n - 1]和Y[ 0 : n – 1 ]为两个数组,每个数组中含有n个已排好序的数.找出X和Y的2n个数的中位数. « 编程任务 利用分治策略试设计一 ...

  8. 【分治法】解决中位数问题、格雷码问题以及分治法直接折半存在的问题讨论————武汉理工大学算法分析实验1

    AlgorithmExperiment 算法分析课实验 分治法的核心思想是将问题分为若干子问题去,使规模一步步缩小,最终分到一步就能得出结果.要注意每个子问题需要性质相同而且相互不重复. 采用分治法完 ...

  9. 实验一 分治与递归—用分治法实现元素选择 java算法

     提高题二:用分治法实现元素选择 一.实验要求与目的 1.了解分治法的基本思想,掌握递归程序编写方法: 2.使用分治法编程,求解线形序列中第k小元素. 二.实验内容 1.  给定线形序列集中n个元素和 ...

最新文章

  1. 异步爬虫框架与协程浅析
  2. 设置Socket缓冲区
  3. ftime()函数的用法----算函数运行时间
  4. 在Spring中了解事务注释
  5. 沈阳职业计算机学院宿舍几人间,沈阳工学院宿舍怎么样 住宿条件好不好
  6. centos 减少tty数量的方法
  7. 梳理项目的pom文件
  8. 行为型模型 中介者模式
  9. OpenCV探索之路(十六):图像矫正技术深入探讨
  10. word多级标题下一级和上一级没有关联上
  11. 【DevOps】软件开发生命周期
  12. 成考专科计算机专业,我是计算机专科生,成考想换个专业,请问学什 – 手机爱问...
  13. Kafka Broker 总体工作流程
  14. 百度K站“漏洞”被发现,如何预防被百度人工K站
  15. 记录--Spyder打开时出现“An error occurred while starting the kernel“
  16. 魔兽世界一个服务器发邮件给,今天突然收到一个网易魔兽世界邮件,不知道真的还是假的 他的邮件格式好奇怪!大家帮我看看...
  17. 搞编程选什么方向好?前端还是后端?阿里程序员和你聊聊就业心得
  18. Ubuntu命令关机
  19. FCPX插件 66种手绘漫画MG动画元素包 Comic Pop 破解版
  20. Linux 域名解析实验

热门文章

  1. Delivery item category determination
  2. 计算机如何安装更新,怎么安装和更新电脑驱动
  3. 使用Java实现发红包案例
  4. jetson nano安装树莓派摄像头(v2)及调试的方法
  5. android6.0下 rtl8152驱动
  6. 微信公众号自定义分享(vue)
  7. 免费轻松识别手写汉字工具-python
  8. Easyui combotree 获取选中节点的值的方法
  9. 哈希表的创建方式及用法
  10. 错误:为 repo ‘appstream‘ 下载元数据失败 : Cannot prepare internal mirrorlist: No URLs in mirrorlist