信 息 工 程 学 院

算法分析 实习报告

学院:信息工程学院 班级:软件工程083 姓名: 学号: 成绩:

一、实习题目 : 棋盘覆盖

二、实习过程 :

1、了解分治法的思想:

将一个难以解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。由分治法产生的子问题是原问题的较小模式,从而可以使用递归的方法求解,反复使用分治手段,可以使子问题与原问题类型一致而其规模却不断缩小,最终使子问题缩小到很容易求出其解。

2、用分治法求解棋盘覆盖问题的思想:

当k>0时,将2k*2k 棋盘分割为4个2k-1*2k-1子棋盘如图(1)所示:

特殊方格位于4个较小子棋盘之一中,其余三个子棋盘中无特殊方格。为了将剩余三个无特殊方格的子棋盘转化为特殊棋盘,可以用一个L 型骨牌覆盖这三个较小棋盘的回合处,如图(2)所示,这三个子棋盘被L 型骨牌覆盖的方格就成为该棋盘上的特殊方格,从而将原问题转化为4个较小规模的棋盘覆盖问题。递归的使用这种方格,直至棋盘简化为1*1方格。

(1) (2)

3、用分治的一般递归算法:

Divide-and-conquer(P)

{

If(|P|For(i=1;i<=k;i++)

Yi=divide-and-conquer(Pi);

Return merge(y1,…,yk);

}

4、棋盘覆盖:

java棋盘覆盖分治法,棋盘覆盖-分治法相关推荐

  1. 分治法——棋盘覆盖问题/L形组件填图问题(Java实现)

    问题描述 设B是一个n×n棋盘,n=2k,(k=1,2,3,-).用分治法设计一个算法,使得:用若干个L型条块可以覆盖住B的除一个特殊方格外的所有方格.其中,一个L型条块可以覆盖3个方格.且任意两个L ...

  2. 分治法--棋盘覆盖问题

    前几天学分治算法的时候碰到了一个经典的棋盘覆盖问题,现在小周周就来总结一下解题的过程吧,加强我们对分治算法的理解. 棋盘覆盖问题 问题描述:在一个2的K次方乘以2的K次方方格组成的棋盘中,一开始恰有一 ...

  3. 棋盘覆盖算法java_棋盘覆盖问题(算法分析)(Java版)

    1.问题描述: 在一个2k×2k个方格组成的棋盘中,若有一个方格与其他方格不同,则称该方格为一特殊方格,且称该棋盘为一个特殊棋盘.显然特殊方格在棋盘上出现的位置有种情形.因而对任何 k≥0,有4k种不 ...

  4. java重载_Java的重载与覆盖,傻傻分不清!

    重载和覆盖是JAVA多态性的不同表现方式,其中重载是在一个类中多态性的一种表现,是指在一个类中定义了多个同名的方法,他们或有不同参数个数或有不同参数类型. 在使用重载时需注意以下几点: 1)重载是通过 ...

  5. 计算机网络按覆盖范围分类可分为哪三类,单选(10分) 计算机网络按覆盖范围一般可分为三类,它们是( )...

    单选(10分) 计算机网络按覆盖范围一般可分为三类,它们是( ) 更多相关问题 [填空题] 话务负荷能力是指在一定的呼损率下,交换系统在()可以负荷的话务量.话务量又称为电话负载,常用"小时 ...

  6. Java知多少(29)覆盖和重载

    在类继承中,子类可以修改从父类继承来的方法,也就是说子类能创建一个与父类方法有不同功能的方法,但具有相同的名称.返回值类型.参数列表. 如果在新类中定义一个方法,其名称.返回值类型和参数列表正好与父类 ...

  7. java语言变量分为_在Java语言中变量分为四种,分别是___________________________________________。_学小易找答案...

    [填空题]One day, at the registrar's office of a college, I noticed how parents are behaving with their ...

  8. 软考中级(软件设计师)——面向对象程序设计(C++Java二选一的题15分-目标3分)

    软考中级(软件设计师)--面向对象程序设计(C++&Java二选一的题15分-目标3分) 目录 软考中级(软件设计师)--面向对象程序设计(C++&Java二选一的题15分-目标3分) ...

  9. JAVA实验1.7-4 计算钱币 (7 分)

    7-4 计算钱币 (7 分) 编写程序,读取用户输入的代表总金额的double值,打印表示该金额所需的最少纸币张数和硬币个数,打印从最大金额开始.纸币的种类有十元.五元.一元,硬币的种类有五角.一角. ...

最新文章

  1. Mysql AB复制
  2. 阿里巴巴Android开发手册(正式版)
  3. 最长上升子序列之基础
  4. STC10F10XE定时器中断输出10KHz的方波程序
  5. bootstrap-switch 不起作用 class处显示代码_GTJ2018高频问题解答——第六弹:梁加腋箍筋显示、梁钢筋报表查看等问题...
  6. LeetCode刷题(39)--Set Matrix Zeros
  7. Kotlin入门(10)七十二变的输入参数
  8. 技巧:macOS 在 Finder(访达)中查看文件夹大小
  9. Go基础:切片的地址和扩容
  10. Visual Studio2017 MSDN安装
  11. python三菱fx3u通讯mx_[实例]三菱FX3U-485无协议通讯程序(含程序段)
  12. ALOHA协议(纯ALOHA协议:想发就发;时隙ALOHA协议:控制想发就发的随意性)
  13. 思腾合力-SCM集群下载镜像步骤
  14. itunes下载管理appstore老版本app
  15. 大数据风控---风险量化和风险定价
  16. GraphGallery,一个基于TensorFlow 2.x与 PyTorch 的GNN benchmark 框架
  17. Java项目:电影院售票管理系统(java+Servlet+JSP+JDBC+Mysql)
  18. 虚拟文字内容、图片、头像生成工具
  19. C语言 【程序30】 题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。
  20. linux下的通配符与特殊符号

热门文章

  1. suse linux关机命令,suse linux 常用命令
  2. uniapp 手机键盘弹起事件,解决底部同意阅读协议的盒子底部变形问题
  3. 在DreamSpark上从Microsoft获得免费的学生软件
  4. 无法被计算机取代的工作,机器人无法取代的职业有哪些
  5. 51CTO自动领豆(Python)
  6. SpringBoot入门教程 Lombok使用注意事项
  7. Android 系统应用解析之——odex
  8. 怎样关闭笔记本触控板
  9. 神舟IV号开发板-107.OTG功能-对U盘的访问(例程bug1)
  10. java面向切面编程