- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机学院2012工程硕士《算法设计和分析》考试试卷
湖北工业大学
二O一二 年工程硕士班试卷
算法设计与分析 试题
(计算机专业用)
一、单项选择题,共5题,每小题4分。 (20分)
1.阶乘函数用递归定义
Public static int factorial(int n)
{
if(n = = 0) return 1;
return _____ ;
}
A. n*factorial(n)
B. n*factorial(n-1)
C. n*factorial(n-2)
D. n*factorial(n+1)
2.上界函数bound计算结点所相应价值的上界。
private static double bound (int i)
{ //计算结点所相应价值的上界
double cleft = c-cw;//剩余容量
double b = cp;//价值上界
// 以物品单位重量价值递减序装填剩余容量
while (i=n w[i]=cleft)
{
cleft -= w[i];
b += p[i];
i++;
}
//装填剩余容量装满背包
if (i=n)______;
return b;
}
A. b += p[i]/w[i]*cleft
B. b = p[i]/w[i]*cleft
C. b += p[i]
D. b = p[i]
3.二分搜索算法的基本思想是将n个元素分成个数大致相同的两半,取a[n/2]与x进行比较:如果_______,则只要在数组a的左半部继续搜索x。
A. x=a[n/2]
B. xa[n/2]
C. x=a[n/2]
D. x<a[n/2]
4.实现快速排序算法如下:
private static void quickSort(int p ,int r)
{
if(pr)
{
int q=partition(p,r); //以确定的基准元素a[p]对子数组a[p;r]进行划分
_______ //对左半段排序
quickSort(q+1,r); //对右半段排序
}
}
A. quickSort(p,q-1)
B. quickSort(p+1,q-1)
C. quickSort(p,q+1)
D. quickSort(p,q-2)
5.回溯法对解空间进行深度优先搜索,一般使用递归方法实现回溯法:
void backtrack (int t)
{
if (t>n) output(x);
else
for (int i=f(n, t); i=g(n,t); i++) {
x[t]=h(i);
if (constraint(t)bound(t)) _______ ;
}
}
A. backtrack(t-1)
B. backtrack(t)
C. backtrack(t+1)
D. backtrack(t+2)
二、填空题,共6个空,每个空5分。 (30分)
1、Hanoi塔问题
设a,b,c是3个塔座。开始时,在塔座a上有一叠共n个圆盘,这些圆盘自下而上,由大到小地叠在一起。各圆盘从小到大编号为1,2,…,n,现要求将塔座a上的这一叠圆盘移到塔座b上,并仍按同样顺序叠置。在移动圆盘时应遵守以下移动规则:
规则1:每次只能移动1个圆盘;
规则2:任何时刻都不允许将较大的圆盘压在较小的圆盘之上;
规则3:在满足移动规则1和2的前提下,可将圆盘移至a,b,c中任一塔座上。
请用递归思想解决解决如下Hanoi塔算法。
void hanoi(int n, int a, int b, int c)
{
if (n 0)
{
(1)hanoi(n-1,a,b,c) ;
move(a,b);
(2)hanoi(n-1,c,a,b) ;
}
}
2、用随机投点法计算p值
设有一半径为r的圆及其外切四边形。向该正方形随机地投掷n个点。设落入圆内的点数为k。由于所投入的点在正方形上均匀分布,因而所投入的点落入圆内的概率为 。所以当n足够大时,k与n之比就逼近这一概率,从而 。
double Darts(int n)
{
static RandomNumber dart;
int k=0;
文档评论(0)