课程分类

课程介绍
课程目录
用户评论
课程介绍
课程目录
用户评论

你将获得

  • 掌握某些知识点
  • 学会某些技巧(或思路)

教学服务

  • icon

    1v1专属答疑服务

  • icon

    BAT专家面试辅导

讲师介绍

  • 计算机软件博士,有32年软件开发和教学经验,《深度学习程序设计实战》作者。方老师擅长用通俗易懂的实例,结合代码,讲解复杂难懂的数学和计算机理论知识。他的课程常融会贯通计算机各学科领域,如博弈、编译、递归、多线程、贝叶斯网络等等。许多学生认为方博改变了他们对计算机科学和数学的看法,影响了他们一生。

  • 课程详情

    自顶向下程序设计方法的关键是分治法,即把一个大问题分解为若干小问题,每个小问题再分解为更小的问题,......,以此类推直到问题可以直接解决为止。本课程用一个有趣的问题——囚犯问题为例,说明了用自顶向下程序设计方法解决问题的思路。囚犯问题是:

    一群囚犯即将被带到牢房里坐牢。看守把他们集中在一起,宣布:

    1.每个囚犯将被单独关在一个牢房里;
    2.每天会随机地抽取一名囚犯放风;
    3.放风的地方有一盏电灯,囚犯可以任意开关这盏电灯;
    4.电灯永久有电,永远不会损坏;
    5.囚犯在放风的地方以及来回的路上都不会被其他囚犯看见;
    6.牢房相互之间隔绝,囚犯相互之间不可能传递任何消息;
    7.囚犯在放风时除了开关电灯不能留下任何痕迹或者信息;
    8.看守只负责随机抽取囚犯,不会帮助囚犯传递信息;
    9.如果有人确定所有人都被放风过,可以通知看守,看守确认之后可以把所有囚犯释放。如果永远没有人通知,或者通知的人弄错了(并不是所有人都被放风过),则所有人将永久坐牢,永无出头之日;
    10.囚犯们可以商议一个方法出来以便避免永久坐牢。商议好之后就会被关进各自的牢房。

    我们的问题是:囚犯们会商议出什么办法?
    对于第一次接触这个问题的人来说,囚犯问题似乎有些难度。但是只要按照自顶向下的程序设计方法,先编写主程序,然后编写被主程序直接调用的子程序,再编写子程序的子程序,......,以此类推,这个问题也是很好解决的。请看视频。
    温馨提示
    • 请勿私下交易
      请勿在平台外交易。与机构和老师私下交易造成的任何损失及纠纷,腾讯课堂不承担任何责任
    • 听课说明

      1、电脑:访问腾讯课堂官网 ke.qq.com 查看我的课表或下载win/mac客户端听课

      2、手机/平板:下载腾讯课堂APP, 进入学习页面听课