分治法实验报告
数学与计算机学院实验报告 格雷码问
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
:
使用分治法求解:
版面要求:A3页面,双面打印 把原问题划分成子问题:把原问题分成两个子问题
求解子问题:问题规模是1的时候直接给解,大于1递归求解
学年学期 2015-2016学年 03 学期 课程名称 算法设计与分析 合并解:把子问题的解拼上0或1
程序代码:
专 业 班 级 计算机科学与技术 2014级
package chanheng;
学 号 姓 名 任课教师 LX14115150 申畅恒 苏鹏 public class GrayCode {
public char[][] a=new char[128][7];
void Encode(int n) 一、实验项目信息
{
int num,i,j=0; 项目名称: 分治法实验 num=1;
if(n==1)//如果问题规模是1解是 0 和 1 实验时间: 2016/04/06 实验学时: 03 学时 {
a[0][0]='0';
实验地点: 工科楼503 a[1][0]='1';
}
else if(n>=2)// 如果问题规模是大于1 二、实验目的及要求
{ 掌握分治法的设计思想、 Encode(n-1);// 递归求解
掌握分治法的求解步骤、 num=(int) Math.pow(2,n);
for(i=0;i<=num/2;i++)// 把上面半部分逆序复制到下面半部分 掌握用分治法解题的算法框架,
{ 写程序代码,运行得到正确结果
for(j=0;j
内容
财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容
及实验步骤
实验内容或原理:格雷码构造问题
实验步骤:(1)录入程序代码;(2)调试程序;(3)算法正确性测试;(4)撰写实验报告
package chanheng; 六、实验总结
import java.util.Scanner; 以上的例子使用了分治法和减治法进行求解。先把原问题分成两个子问题然后在子问题进
行减治法求解。具体地说把原问题分成两半,很明显可以看出,如果问题规模是n那么它是public class Tester { 格雷码的n-1问题并且加上0或1。
通过此次实验可以掌握如何使用分治法进行对一个问题求解,可以分析出哪种问题适合
public static void main(String[] args) { 使用分治法求解。分治法的两个主要步骤是分问题和合并解。
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
GrayCode GC=new GrayCode();
System.out.print("Please enter a number(0-7):");
int n=in.nextInt();
int j=(int) Math.pow(2, n);
GC.Encode(n);
for(int i=0;i
评价
LEC评价法下载LEC评价法下载评价量规免费下载学院评价表文档下载学院评价表文档下载
批阅教师 成绩 批阅时间
教师评语
结果正确。
注意:
格雷码有多种,上面的例子只是其中的一个。上面的例子是把零和以拼在后面,其实也
可以拼在前面,但是这样比较难实现。