网站大量收购闲置独家精品文档,联系QQ:2885784924

Python程序设计实践- 习题及答案 ch03 典型算法介绍.docx

Python程序设计实践- 习题及答案 ch03 典型算法介绍.docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第3章典型算法介绍

一、选择题

1.以下哪些是分治算法的步骤()。

A.分解B.求解C.合并D.计算结果

2.关于贪心算法,下列叙述中错误的是:()

A.贪心算法无法求得问题的最优解。

B.贪心算法所做出的选择只是在某种意义上的局部最优选择。

C.贪心算法的时间效率比枚举法高。

D.贪心算法并不从整体最优考虑。

E.思维是大脑的基本功能,大脑是人体的直接感觉器官。

参考答案:

ABC;

A。

二、填空题

1.经典的算法策略主要包括____、____、____、____、____、____、____等。

2.枚举算法又叫____,也称为暴力破解法,是指针对要解决的问题,列举出所有可能的情况,逐个判断哪些符合问题所要求的约束条件,从而得到问题的解。

3.递推算法充分利用了计算机____、可以自动____的特点。

4.迭代算法在数学上也称为“____”,是一种不断用旧值递推新值的过程,在解决问题时,总是重复利用一种方法。

参考答案:

枚举算法、递推算法、递归算法、迭代算法、分治算法、贪心算法、回溯算法;

穷举法;

运算速度快,进行重复操作。

递推法

三、简答题

1.鸡兔同笼问题

有若干只鸡和兔在同一个笼子里,共有?35?个头、94?只脚,求笼子中各有多少只鸡和兔?

参考答案:

根据题意,我们可以得到以下两个方程:

1.x+y=35(从上面看有35个头)

2.2x+4y=94(从下面看有94只脚)

代码如下:

2.找零钱问题

将一张面值为?100?元的人民币等值换成?100?张?5?元、1?元、?0.5?元的零钞,要求每种零钞不少于?1?张,问有哪几种组合?

参考答案:

使用for……range循环结构:

运行得到:

3.三色球问题

设有?3?个红球、3?个黄球、6?个绿球,现将这?12?个球混放在一个盒子里,从中任意摸出?8?个球,求摸出球的各种颜色搭配。

提示:三色球问题最简单、直接的解法是枚举算法。

4.算?24?点游戏

给定?4?个整数(数字范围为?1~13),使用“+”“?”“×”“/”“()”构造一个计算式,使计算结果是?24,例如(2-1)×4×6=24。

5.斐波那契数列问题

用递归算法求解斐波那契数列问题。

6.找零币问题

假设某超市只有?1?分、2?分、5?分、1?角、2?角、5?角、1?元的硬币。在超市结账时,如果需要找零钱,收银员希望找给顾客的硬币数最少。给定需要找的零钱数目,如何求得最少的硬币数(可用贪心算法)?

7.求立方根

用迭代算法编写程序,求解?a?的立方根。

8.会议室安排问题

假设现在只有一个会议室,需要举行?8?场会议。每场会议都有开始时间?b?和结束时间?e(若前一场会议的结束时间早于后一场会议的开始时间,则称这两场会议之间没有冲突,否则称这两场会议之间有冲突)。每场会议的开始时间和结束时间如表?3-2?所示。请使用贪心算法解决这个问题,使会议室能够满足最优的安排。

9.n皇后问题

在?n×n?格的棋盘上放置?n?个皇后,使其不能相互攻击,即任意两个皇后不能处于同一行、同一列或同一斜线上,有多少种不同的放置方法?

n=8?时,即为著名的八皇后问题,如图?3-10?所示。

请以?n=4(四皇后问题)为例,使用回溯算法,找出所有可能解。

您可能关注的文档

文档评论(0)

xiaobao + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档