计算机学院2012工程硕士《算法设计与分析》考试试卷计算机学院2012工程硕士《算法设计与分析》考试试卷.docVIP

  • 8
  • 0
  • 约4.42千字
  • 约 7页
  • 2017-04-23 发布于贵州
  • 举报

计算机学院2012工程硕士《算法设计与分析》考试试卷计算机学院2012工程硕士《算法设计与分析》考试试卷.doc

第 PAGE 7页 共 NUMPAGES 7页 湖北工业大学 二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) { stati

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档