Gray码问题---分治法实验2
问题描述
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相关推荐
- 分治法实验之大整数乘法(算法设计分析)
分治法实验之大整数乘法 01. 问题描述 02. 输入格式 03. 输出格式 04. 输入样例 05. 输出样例 06. 问题分析 07. 算法设计 08. 代码实现 09. 测试结果 10. 复杂度 ...
- c语言分治法实验报告,分治法实验报告范文
分治法实验报告范文 一.实验目的及要求 利用分治方法设计大整数乘法的递归算法,掌握分治法的基本思想和算法设计的基本步骤. 要求:设计十进制的'大整数乘法,必须利用分治的思想编写算法,利用c语言(或者c ...
- c语言分治法实验报告,分治法实验报告范文word版
<分治法实验报告范文word版>由会员分享,可在线阅读,更多相关<分治法实验报告范文word版(2页珍藏版)>请在人人文库网上搜索. 1.精编word文档 下载可编辑分治法实验 ...
- 分治法实验-寻找第k小元素
问题描述 随机生成含有n个不同元素的数组L(n≥10000),要求找出第k小的元素(k≤n),完成下面的任务: (1)设计一个基于排序选择算法程序,编程调试正确(排序算法自己确定). (2)设计一个时 ...
- 找两个有序数组中的中位数---分治法实验1
问题描述 设X[ 0 : n - 1]和Y[ 0 : n – 1 ]为两个数组,每个数组中含有n个已排好序的数.找出X和Y的2n个数的中位数. 编程任务 利用分治策略试设计一个O (log n)时间的 ...
- 【分治法】中位数问题和Gray码问题——武汉理工大学算法分析与设计课程实验
i. 中位数问题 问题描述 设X[ 0 : n - 1]和Y[ 0 : n – 1 ]为两个数组,每个数组中含有n个已排好序的数.找出X和Y的2n个数的中位数. 编程任务 利用分治策略试设计一 ...
- 【分治法】中位数问题和Gray码问题——武汉理工大学算法设计与分析课程实验
1. 中位数问题 « 问题描述 设X[ 0 : n - 1]和Y[ 0 : n – 1 ]为两个数组,每个数组中含有n个已排好序的数.找出X和Y的2n个数的中位数. « 编程任务 利用分治策略试设计一 ...
- 【分治法】解决中位数问题、格雷码问题以及分治法直接折半存在的问题讨论————武汉理工大学算法分析实验1
AlgorithmExperiment 算法分析课实验 分治法的核心思想是将问题分为若干子问题去,使规模一步步缩小,最终分到一步就能得出结果.要注意每个子问题需要性质相同而且相互不重复. 采用分治法完 ...
- 实验一 分治与递归—用分治法实现元素选择 java算法
提高题二:用分治法实现元素选择 一.实验要求与目的 1.了解分治法的基本思想,掌握递归程序编写方法: 2.使用分治法编程,求解线形序列中第k小元素. 二.实验内容 1. 给定线形序列集中n个元素和 ...
最新文章
- 异步爬虫框架与协程浅析
- 设置Socket缓冲区
- ftime()函数的用法----算函数运行时间
- 在Spring中了解事务注释
- 沈阳职业计算机学院宿舍几人间,沈阳工学院宿舍怎么样 住宿条件好不好
- centos 减少tty数量的方法
- 梳理项目的pom文件
- 行为型模型 中介者模式
- OpenCV探索之路(十六):图像矫正技术深入探讨
- word多级标题下一级和上一级没有关联上
- 【DevOps】软件开发生命周期
- 成考专科计算机专业,我是计算机专科生,成考想换个专业,请问学什 – 手机爱问...
- Kafka Broker 总体工作流程
- 百度K站“漏洞”被发现,如何预防被百度人工K站
- 记录--Spyder打开时出现“An error occurred while starting the kernel“
- 魔兽世界一个服务器发邮件给,今天突然收到一个网易魔兽世界邮件,不知道真的还是假的 他的邮件格式好奇怪!大家帮我看看...
- 搞编程选什么方向好?前端还是后端?阿里程序员和你聊聊就业心得
- Ubuntu命令关机
- FCPX插件 66种手绘漫画MG动画元素包 Comic Pop 破解版
- Linux 域名解析实验
热门文章
- Delivery item category determination
- 计算机如何安装更新,怎么安装和更新电脑驱动
- 使用Java实现发红包案例
- jetson nano安装树莓派摄像头(v2)及调试的方法
- android6.0下 rtl8152驱动
- 微信公众号自定义分享(vue)
- 免费轻松识别手写汉字工具-python
- Easyui combotree 获取选中节点的值的方法
- 哈希表的创建方式及用法
- 错误:为 repo ‘appstream‘ 下载元数据失败 : Cannot prepare internal mirrorlist: No URLs in mirrorlist