算法部分作业答案
des作业答案和RSA作业

1.第一题DE 2C 3E 541101 1110 0010 1100 0011 1110 0101 0100A0 9B 02 5B1010 0000 1001 1011 0000 0010 0101 1011经过置换1 左移一位后变成c1和d1 0011000 01100011 1-8 1100010 00010010 9-16 0100010 00101101 17-24 1101010 0100 25-281110010 11001010 29-36 1000011 00011111 37-44 1110100 01001111 45-52 1111101 1011 53-56经置换2变成k1(12 A6 D1 C7 AD 7A)c1和d1继续左移1位变成c2和d2 00010010 1100011010100110 0010010011010001 01011010100011000111 1001010010101101 0011111001111010 100111110111经置换2变成k2(A8 68 15 C5 D7 9B)c2和d2继续左移2位后变成c3和d3 10101000 0001100001101000 1001000100010101 01101010001111000101 0101000011010111 1111101010011011 011111011110经置换2变成k3(05 2F 28 DF 16 69)0000010100101111001010001101111100010110011010012.在DES 算法中,S2盒的输入为101101,求S2盒输出 01004.1 在使用RSA 的公钥体制中,已截获发给某用户的密文为c=10,该用户的公钥pk = 5, n=35,那么明文m 等于多少?为什么能根据公钥可以破解密文?解:n=p*q (p 和q 都是素数),n=35 故解出p=5 ,q=7 ;()()()1124n p q ϕ=--=;又因为()1mod pk sk n ϕ*≡,而pk=5 故可解出sk=5;mod sk m c n ==105 mod 35=5 。
算法导论课程作业答案

算法导论课程作业答案Introduction to AlgorithmsMassachusetts Institute of Technology 6.046J/18.410J Singapore-MIT Alliance SMA5503 Professors Erik Demaine,Lee Wee Sun,and Charles E.Leiserson Handout10Diagnostic Test SolutionsProblem1Consider the following pseudocode:R OUTINE(n)1if n=12then return13else return n+R OUTINE(n?1)(a)Give a one-sentence description of what R OUTINE(n)does.(Remember,don’t guess.) Solution:The routine gives the sum from1to n.(b)Give a precondition for the routine to work correctly.Solution:The value n must be greater than0;otherwise,the routine loops forever.(c)Give a one-sentence description of a faster implementation of the same routine. Solution:Return the value n(n+1)/2.Problem2Give a short(1–2-sentence)description of each of the following data structures:(a)FIFO queueSolution:A dynamic set where the element removed is always the one that has been in the set for the longest time.(b)Priority queueSolution:A dynamic set where each element has anassociated priority value.The element removed is the element with the highest(or lowest)priority.(c)Hash tableSolution:A dynamic set where the location of an element is computed using a function of the ele ment’s key.Problem3UsingΘ-notation,describe the worst-case running time of the best algorithm that you know for each of the following:(a)Finding an element in a sorted array.Solution:Θ(log n)(b)Finding an element in a sorted linked-list.Solution:Θ(n)(c)Inserting an element in a sorted array,once the position is found.Solution:Θ(n)(d)Inserting an element in a sorted linked-list,once the position is found.Solution:Θ(1)Problem4Describe an algorithm that locates the?rst occurrence of the largest element in a?nite list of integers,where the integers are not necessarily distinct.What is the worst-case running time of your algorithm?Solution:Idea is as follows:go through list,keeping track of the largest element found so far and its index.Update whenever necessary.Running time isΘ(n).Problem5How does the height h of a balanced binary search tree relate to the number of nodes n in the tree? Solution:h=O(lg n) Problem 6Does an undirected graph with 5vertices,each of degree 3,exist?If so,draw such a graph.If not,explain why no such graph exists.Solution:No such graph exists by the Handshaking Lemma.Every edge adds 2to the sum of the degrees.Consequently,the sum of the degrees must be even.Problem 7It is known that if a solution to Problem A exists,then a solution to Problem B exists also.(a)Professor Goldbach has just produced a 1,000-page proof that Problem A is unsolvable.If his proof turns out to be valid,can we conclude that Problem B is also unsolvable?Answer yes or no (or don’t know).Solution:No(b)Professor Wiles has just produced a 10,000-page proof that Problem B is unsolvable.If the proof turns out to be valid,can we conclude that problem A is unsolvable as well?Answer yes or no (or don’t know).Solution:YesProblem 8Consider the following statement:If 5points are placed anywhere on or inside a unit square,then there must exist two that are no more than √2/2units apart.Here are two attempts to prove this statement.Proof (a):Place 4of the points on the vertices of the square;that way they are maximally sepa-rated from one another.The 5th point must then lie within √2/2units of one of the other points,since the furthest from the corners it can be is the center,which is exactly √2/2units fromeach of the four corners.Proof (b):Partition the square into 4squares,each with a side of 1/2unit.If any two points areon or inside one of these smaller squares,the distance between these two points will be at most √2/2units.Since there are 5points and only 4squares,at least two points must fall on or inside one of the smaller squares,giving a set of points that are no more than √2/2apart.Which of the proofs are correct:(a),(b),both,or neither (or don’t know)?Solution:(b)onlyProblem9Give an inductive proof of the following statement:For every natural number n>3,we have n!>2n.Solution:Base case:True for n=4.Inductive step:Assume n!>2n.Then,multiplying both sides by(n+1),we get(n+1)n!> (n+1)2n>2?2n=2n+1.Problem10We want to line up6out of10children.Which of the following expresses the number of possible line-ups?(Circle the right answer.)(a)10!/6!(b)10!/4!(c) 106(d) 104 ·6!(e)None of the above(f)Don’t knowSolution:(b),(d)are both correctProblem11A deck of52cards is shuf?ed thoroughly.What is the probability that the4aces are all next to each other?(Circle theright answer.)(a)4!49!/52!(b)1/52!(c)4!/52!(d)4!48!/52!(e)None of the above(f)Don’t knowSolution:(a)Problem12The weather forecaster says that the probability of rain on Saturday is25%and that the probability of rain on Sunday is25%.Consider the following statement:The probability of rain during the weekend is50%.Which of the following best describes the validity of this statement?(a)If the two events(rain on Sat/rain on Sun)are independent,then we can add up the twoprobabilities,and the statement is true.Without independence,we can’t tell.(b)True,whether the two events are independent or not.(c)If the events are independent,the statement is false,because the the probability of no rainduring the weekend is9/16.If they are not independent,we can’t tell.(d)False,no matter what.(e)None of the above.(f)Don’t know.Solution:(c)Problem13A player throws darts at a target.On each trial,independentlyof the other trials,he hits the bull’s-eye with probability1/4.How many times should he throw so that his probability is75%of hitting the bull’s-eye at least once?(a)3(b)4(c)5(d)75%can’t be achieved.(e)Don’t know.Solution:(c),assuming that we want the probability to be≥0.75,not necessarily exactly0.75.Problem14Let X be an indicator random variable.Which of the following statements are true?(Circle all that apply.)(a)Pr{X=0}=Pr{X=1}=1/2(b)Pr{X=1}=E[X](c)E[X]=E[X2](d)E[X]=(E[X])2Solution:(b)and(c)only。
东师21秋学期《算法分析与设计》在线作业1(答案)

东师21秋学期《算法分析与设计》在线作业1(答案)一、单选题1. 字符串”China Beijing”的长度是()A.12B. 13C. 14D. 15正确答案. B2. 一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树的总结点数为()。
A.219B. 221C. 229D. 231正确答案. A3. 栈和队列的共同点是()A.都是先进先出B. 都是先进后出C. 只允许在端点处插入和删除元素D. 没有共同点正确答案. C4. 使用简单选择排序法对n个数进行排序要进行()趟比较。
A. NB. n-1C. n+1D. 不一定正确答案. B5. 下面给出的四种排序方法中,排序过程中的比较次数与排序方法无关的是()。
A. 选择排序法B. 插入排序法C. 快速排序法D. 堆积排序法正确答案. A6. 图中有关路径的定义是()。
A. 由顶点和相邻顶点序偶构成的边所形成的序列B. 由不同顶点所形成的序列C. 由不同边所形成的序列D. 上述定义都不是正确答案. A7. 执行memset(s,'a',4)后,s的值为()。
A. "aaaa"B. "a4"C. "4a"D. "eeee"正确答案. A8. 一个算法的评价主要从空间复杂度和()来考虑。
A. 时间复杂度B. 算法有效性C. 算法有穷性D. 算法可读性正确答案. A9. 下面的时间复杂度按数量级递增的顺序排列,正确的是注释从功能上可以分为()。
A. 平方阶O(n2),对数阶O(log2n),指数阶O(2n)B. 线性对数阶O(nlog2n),指数阶O(2n),立方阶O(n3)C. 常数阶O(1),线性阶O(n),指数阶O(2n)D. k次方阶O(nk),指数阶O(2n),对数阶O(log2n)正确答案. C10. ()嵌在源程序体中,用于描述其后的语句或程序段做什么工作,也就是解释下面要做什么,或是执行了下面的语句会怎么样。
算法分析与设计作业及参考答案样本

《算法分析与设计》作业( 一)本课程作业由两部分组成。
第一部分为”客观题部分”, 由15个选择题组成, 每题1分, 共15分。
第二部分为”主观题部分”,由简答题和论述题组成, 共15分。
作业总分30分, 将作为平时成绩记入课程总成绩。
客观题部分:一、选择题( 每题1分, 共15题)1、递归算法: ( C )A、直接调用自身B、间接调用自身C、直接或间接调用自身 D、不调用自身2、分治法的基本思想是将一个规模为n的问题分解为k个规模较小的字问题, 这些子问题: ( D )A、相互独立B、与原问题相同C、相互依赖D、相互独立且与原问题相同3、备忘录方法的递归方式是:( C )A、自顶向下B、自底向上C、和动态规划算法相同D、非递归的4、回溯法的求解目标是找出解空间中满足约束条件的:( A )A、所有解B、一些解C、极大解D、极小解5、贪心算法和动态规划算法共有特点是: ( A )A、最优子结构B、重叠子问题C、贪心选择D、形函数6、哈夫曼编码是: ( B)A、定长编码B、变长编码C、随机编码D、定长或变长编码7、多机调度的贪心策略是: ( A)A、最长处理时间作业优先B、最短处理时间作业优先C、随机调度D、最优调度8、程序能够不满足如下性质: ( D )A、零个或多个外部输入B、至少一个输出C、指令的确定性D、指令的有限性9、用分治法设计出的程序一般是: ( A )A、递归算法B、动态规划算法C、贪心算法D、回溯法10、采用动态规划算法分解得到的子问题:( C )A、相互独立B、与原问题相同C、相互依赖D、相互独立且与原问题相同11、回溯法搜索解空间的方法是: ( A )A、深度优先B、广度优先C、最小耗费优先D、随机搜索12、拉斯维加斯算法的一个显著特征是它所做的随机选性决策有可能导致算法: ( C )A、所需时间变化B、一定找到解C、找不到所需的解D、性能变差13、贪心算法能得到: ( C )A、全局最优解B、 0-1背包问题的解C、背包问题的解 D、无解14、能求解单源最短路径问题的算法是: ( A )A、分支限界法B、动态规划C、线形规划D、蒙特卡罗算法15、快速排序算法和线性时间选择算法的随机化版本是:( A )A、舍伍德算法B、蒙特卡罗算法C、拉斯维加斯算法D、数值随机化算法主观题部分:二、写出下列程序的答案( 每题2.5分, 共2题)1、请写出批处理作业调度的回溯算法。
北语网院20春《算法与数据分析》作业_1答案

(单选)1:下列随机算法中运行时有时候成功有时候失败的是A:数值概率算法
B:舍伍德算法
C:拉斯维加斯算法
D:蒙特卡罗算法
正确答案:C
(单选)2:最长公共子序列算法利用的算法是
A:分支界限法
B:动态规划法
C:贪心法
D:回溯法
正确答案:B
(单选)3:矩阵连乘问题的算法可由什么设计实现
A:分支界限算法
B:动态规划算法
C:贪心算法
D:回溯算法
正确答案:B
(单选)4:下列哪一种算法不是随机化算法
A:蒙特卡罗算法
B:.拉斯维加斯算法
C:.动态规划算法
D:.舍伍德算法
正确答案:C
(单选)5:贪心算法与动态规划算法的共同点是
A:重叠子问题
B:构造最优解
C:贪心选择性质
D:最优子结构性质
正确答案:D
(单选)6:下面哪种函数是回溯法中为避免无效搜索采取的策略A:递归函数
B:.剪枝函数
C:。
随机数函数
D:.搜索函数
正确答案:B
(单选)7:采用最大效益优先搜索方式的算法是
A:分支界限法。
数据结构与算法作业答案

《数据结构与算法》作业参考答案说明:1、题号形式: 每题都以【sn,cha,sec】开头,sn表明本题的题目序号,每道题都有唯一的序号;cha表示内容所在的章;sec表示内容所在的节。
如:【17,2,1】表示序号17的题来自第2章第1节。
2、题型:1) 选择题:序号1-180题2) 是非题:序号181-220题3) 分析计算作图题:序号221-250题(选自《数据结构题集》—严蔚敏等编)3、内容取舍:根据本学期上课课件中的内容,未上课章节的练习可舍弃。
4、必做题或选做题:是非题和选择题(序号1-220)只要在上过课的章节中都是必做题,分析计算作图题(序号221-250)在每题后标出是必做题还是选做题,其中16个必做题14个选做题。
1) 选择题:序号1-180题序号参考答案1 BD2 D3 C4 A5 C6 D7 C8 D9 B10 D11 B12 D13 C14 C15 D16 A17 A18 A19 A20 A21 A22 D24 A25 B26 C27 C28 C29 B30 B31 B32 B33 B34 A35 A36 C37 D38 D39 B40 C41 B42 A43 D44 B45 D46 B47 C48 C49 B50 B51 A52 D53 D54 C55 A56 A57 C58 C59 C60 B61 A62 D64 B65 C66 B67 D68 D69 B70 A71 C72 B73 A74 D75 D76 B77 C78 C79 D80 B81 D82 C83 B84 A85 B86 C87 D88 B89 B90 B91 D92 C93 D94 A95 C96 C97 B98 A99 C 100 C 101 A 102 D 103 C105 C 106 D 107 C 108 B 109 B 110 D111 A 112 B 113 A 114 B 115 C 116 D 117 B 118 C 119 A 120 B121 A 122 A 123 C 124 C 125 B 126 B 127 B 128 C 129 C 130 B131 A 132 D 133 AB 134 D 135 C 136 C 137 B 138 A 139 B 140 B141 D 142 A 143 B145 A146 A147 C148 B149 C150 A151 B152 B153 C154 B155 A156 C157 C158 C159 A160 B161 C162 A163 A164 D165 B166 C167 D168 C169 C170 B171 B172 C173 B174 D175 C176 D177 B178 A179 A180 B2) 是非题:序号181-220题181 T182 T183 F184 T185 T186 F187 T188 T189 T190 T191 F192 T193 T194 F195 F196 T197 F198 T199 F200 T201 T202 T203 F204 T205 T206 F207 T208 T209 F210 T211 F212 T213 T214 F215 T216 T217 F218 T219 T220 F3) 分析计算作图题:序号221-250(选自《数据结构题集》—严蔚敏等编)【221,1,4】(选自《数据结构题集》1.8,选做题)设n为正整数,试确定下列各段程序中前置以记号@的语句的频度(语句的频度指的是该语句重复执行的次数)。
人教A版数学必修三同步作业:第1章 算法初步 作业12

课时作业(十二)1.k进制数32 501(k),则k不可能是()A.5B.6C.7 D.8答案 A解析k进制数各数字均小于k.2.以下各数中有可能是五进制数的为()A.55 B.106C.732 D.2 134答案 D解析五进制数只能出现0,1,2,3,4.3.三位五进制数表示的最大十进制数是()A.120 B.124C.144 D.224答案 B解析最大的三位五进制数是444(5),化为十进制为444(5)=4×52+4×51+4×50=124(10).4.下列二进制数中最大的数是()A.111(2)B.1 001(2)C.110(2)D.101(2)答案 B解析B中有四位数:1 001=23+1=9(10).5.把213(4)化为九进制数为()A.44(9)B.34(9)C.43(9)D.213(9)答案 C解析213(4)=2×42+1×41+3×40=39.∴213(4)=43(9).6.将数30 012(4)转化为十进制数为()A.524 B.774C.256 D.260答案 B解析30 012(4)=3×44+0×43+0×42+1×41+2×40=774.7.将二进制数10 001(2)化为五进制数为()A.32(5)B.23(5)C.21(5)D.12(5)答案 A解析将10 001(2)化为十进制数为:10 001(2)=1×24+0×23+0×22+0×21+1×20=17,将17化为五进制数为32(5),∴10 001(2)=32(5).8.如图是将二进制数11 111(2)化为十进制数的一个程序框图,判断框内应填入的条件是()A.i≤5 B.i≤4C.i>5 D.i>4答案 D解析11 111(2)=1×20+1×21+1×22+1×23+1×24,故i>4时,即输出S,结束程序.9.1 001 101(2)与下列哪个值相等()A.115(8)B.113(8)C.114(8)D.116(8)答案 A解析先化为十进制数:1 001 101(2)=1×26+1×23+1×22+1×20=77,再化为八进制.∴77=115(8).∴1 001 101(2)=115(8).10.三进制数2 012(3)化为六进制数为abc(6),则a+b+c=________.答案9解析2 012(3)=2×33+0×32+1×31+2×30=59.三进制数2 012(3)化为六进制数为135(6),∴a+b+c=9.11.在计算机的运行过程中,常常要进行二进制数与十进制数的转换与运算.如十进制数8转换成二进制数是1 000,记作8(10)=1 000(2);二进制数111转换成十进制数是7,记作111(2)=7(10)等.二进制的四则运算,如11(2)+101(2)=1 000(2).请计算:11(2)×111(2)=________,10 101(2)+1 111(2)=________.答案10 101(2)100 100(2)解析由题可知,在二进制数中的运算规律是“满二进一”,∴11(2)×111(2)=10 101(2),10 101(2)+1 111(2)=100 100(2).12.将八进制数127(8)化成二进制数为________(2).答案 1 010 111解析将127(8)化为十进制:127(8)=1×82+2×8+7=64+16+7=87,再将十进制数87化为二进制数为:如图∴87=1 010 111(2).13.若六进制数13 m 502(6)化为十进制数等于12 710,数字m=________.答案 4解析由于13m502(6)=1×65+3×64+m×63+5×62+0×61+2×60=216m+11 846,所以令12 710=216m+11 846,解得m=4,所以数字m=4.14.(1)已知71=47(k),求k的值.(2)已知175(8)=120+r,求正整数r.(3)已知a=12(16),b=25(7),c=33(4),则a,b,c的大小关系是如何的?解析(1)∵47(k)=4·k+7,∴71=4k+7,k=16.(2)∵175(8)=1×82+7×81+5×80=125,∴125=120+r.∴r=5.(3)a=2×160+1×16=18,b=5×70+2×71=19,c=3×40+3×41=15,∴b>a>c.1.一个k进制的三位数与某六进制的二位数等值,则k不可能是()A.3 B.4C.5 D.7答案 D解析k进制的最小三位数为k2,六进制的最大二位数为5×6+5=35,由k2≤35,得0<k≤35,故k不可能是7.1. (2016·四川)秦九韶是我国南宋时期的数学家,普州(现四川省安岳县)人,他在所著的《数书九章》中提出的多项式求值的秦九韶算法,至今仍是比较先进的算法.如图所示的程序框图给出了利用秦九韶算法求某多项式值的一个实例,若输入n ,x 的值分别为3,2,则输出v 的值为( )A .9B .18C .20D .25 答案 B解析 由题意得i =2,v =1×2+2=4,i =1;v =4×2+1=9,i =0;v =9×2+0=18,i =-1,此时不满足i ≥0,退出循环,所以输出v =18.故选B. 2.(2016·课标全国Ⅰ)执行下面的程序框图,如果输入的x =0,y =1,n =1,则输出x ,y 的值满足( )A .y =2xB .y =3xC .y =4xD .y =5x答案 C解析 运行程序,第1次循环得x =0,y =1,n =2,第2次循环得x =12,y =2,n =3,第3次循环得x =32,y =6,此时x 2+y 2≥36,输出x ,y ,满足C 项.3.(2014·新课标全国Ⅰ理)执行下面的程序框图,若输入的a ,b ,k 分别为1,2,3,则输出的M =( )A.203 B.165 C.72D.158答案 D解析 根据程序框图所给的已知条件逐步求解,直到得出满足条件的结果. 当n =1时,M =1+12=32,a =2,b =32;当n =2时,M =2+23=83,a =32,b =83;当n =3时,M =32+38=158,a =83,b =158;当n =4时,终止循环.输出M =158.4.(2014·北京理)当m =7,n =3时,执行如图所示的程序框图,输出的S 值为( )A .7B .42C .210D .840 答案 C解析 按照程序框图执行算法,输出结果.程序框图的执行过程如下:m =7,n =3时,m -n +1=5, k =m =7,S =1,S =1×7=7;k =k -1=6>5,S =6×7=42;k =k -1=5=5,S =5×42=210;k =k -1=4<5,输出S =210.故选C.5.(2014·安徽理)如图所示,程序框图(算法流程图)的输出结果是()A.34 B.55C.78 D.89答案 B解析根据程序框图所给的条件逐步求解,直到得出满足条件的结果.当输入x=1,y=1,执行z=x+y及z≤50,x=y,y=z后,x,y,z的值依次对应如下:x=1,y=1,z=2;x=1,y=2,z=3;x=2,y=3,z=5;x=3,y=5,z=8;x=5,y=8,z=13;x=8,y=13,z=21;x=13,y=21,z=34;x=21,y=34,z=55.由于55>50不成立,故输出55.故选B.6.(2015·北京)执行如图所示的程序框图,输出的结果为()A.(-2,2) B.(-4,0)C.(-4,-4) D.(0,-8)答案 B解析初始值x=1,y=1,k=0,执行程序框图,则s=0,t=2,x=0,y=2,k=1;s=-2,t=2,x=-2,y=2,k=2;s=-4,t=0,x=-4,y=0,k=3,此时输出(x,y),则输出的结果为(-4,0),选B.7.(2013·陕西)根据下列算法语句,当输入x为60时,输出y的值为()INPUT xIF x<=50 THENy=0.5*xELSEy=25+0.6*(x-50)END IFPRINT yA.25B.30答案 C解析 本题考查程序语句问题.此算法语句的作用实际上是求函数f(x)=⎩⎪⎨⎪⎧0.5x ,x ≤50,25+0.6(x -50),x>50的值,∴x =60时,y =25+0.6×(60-50)=31.选C.8.(2013·江西)阅读如下程序框图,如果输出i =5,那么在空白矩形框中填入的语句为( )A .S =2*i -2B .S =2*i -1C .S =2*iD .S =2*i +4 答案 C解析 本题考查程序框图.逐一检验知,S =2*i ,其他项不符合输出i =5的条件. 循环次数不多,逐一检验即可.9.(2013·浙江)某程序框图如图所示,若该程序运行后输出的值是95,则( )A .a =4B .a =5C .a =6D .a =7答案 A解析 本题考查循环结构的程序框图. k 1 2 3 4 S32537495故a 应取4.第9题图 第10题图10.(2012·山东)执行如图的程序框图,如果输入a =4,那么输出的n 的值为( )C .4D .5 答案 B解析 逐次计算结果是P =1,Q =3,n =1;P =5,Q =7,n =2;P =21,Q =15,n =3,退出循环,故输出结果是n =3. 11.(2012·广东文)执行如图所示的程序框图,若输入n 的值为6,则输出s 的值为( )A .105B .16C .15D .1 答案 C解析 按照程序过程,通过反复判断循环条件执行程序.执行过程为s =1×1=1,i =3;s =1×3=3,i =5;s =3×5=15,i =7≥6,跳出循环.故输出s 的值为15. 12.(2012·天津文)阅读如图所示的程序框图,运行相应的程序,则输出S 的值为( ) A .8 B .18 C .26 D .80 答案 C解析 程序执行情况为S =31-30=2,n =2;S =2+32-31=8,n =3;S =8+33-32=26,n =4≥4,跳出循环.故输出26,选C.第12题图 第13题图13.(2015·重庆)执行如图所示的程序框图,若输出k 的值为8,则判断框内可填入的条件是( ) A .s ≤34B .s ≤56C .s ≤1112D .s ≤2524答案 C解析 第一次循环,得k =2,s =12;第二次循环,得k =4,s =12+14=34;第三次循环,得k=6,s =34+16=1112,第四次循环,得k =8,s =1112+18=2524,此时退出循环,输出k =8,所以判断框内可填入的条件是s ≤1112,故选C.14.(2014·福建文)阅读右图所示的程序框图,运行相应的程序,输出的n 的值为( ) A .1 B .2 C .3 D .4 答案 B解析 由程序框图所给的条件逐步求解,直到得出满足条件的结果.当n =1时,21>12满足条件,继续循环得n =2,22>22不成立,不满足条件,所以输出n =2.第14题图 第15题图15.(2013·江苏)如图是一个算法的流程图,则输出的n 的值是________. 答案 3解析 本题考查算法的识别和应用. 直接模拟执行,a 8 26 n23输出n 为3. 16.(2016·江苏)如图是一个算法的流程图,则输出的a 的值是________.答案 9解析 执行程序,a =1,b =9,不满足a>b ,第一次循环:a =5,b =7,不满足a>b ;第二次循环:a =9,b =5,满足a>b ,退出循环,故输出a =9. 17.(2013·湖北)阅读如图所示的程序框图,运行相应的程序,输出的结果i =________.答案 5解析 从程序框图知,a =10,i =1;a =5,i =2;a =16,i =3;a =8,i =4;a =4,i =5.故输出i =5.1.如图所示的程序框图中,第3个输出的数是( )A .1 B.32 C .2 D.52答案 C解析 N 和A 的值依次为A =1,N =2;A =32,N =3;A =2,N =4.所以,第三个输出的数是2.2.(2017·衡水中学调研)已知函数y =⎩⎪⎨⎪⎧-1 (x >0),0 (x =0),1 (x <0),求该函数值的程序框图,如图所示.则①处应填________;②处应填________.答案①y=-1,②y=1由Ruize收集整理。
计算机编程算法作业题参考答案

计算机编程算法作业题参考答案1. 第一题答案:题目要求实现一个排序算法,可以选择任意一种排序算法进行实现。
以下给出一种可能的解答:def bubble_sort(arr):n = len(arr)for i in range(n):for j in range(0, n-i-1):if arr[j] > arr[j+1]:arr[j], arr[j+1] = arr[j+1], arr[j]return arrarr = [64, 34, 25, 12, 22, 11, 90]sorted_arr = bubble_sort(arr)print("Sorted array:", sorted_arr)以上代码使用冒泡排序算法对给定的数组进行排序。
2. 第二题答案:题目要求实现一个查找算法,可以选择任意一种查找算法进行实现。
以下给出一种可能的解答:def binary_search(arr, target):low = 0high = len(arr) - 1while low <= high:mid = (low + high) // 2if arr[mid] == target:return midelif arr[mid] < target:low = mid + 1else:high = mid - 1return -1arr = [11, 22, 25, 34, 64, 90]target = 25index = binary_search(arr, target)if index != -1:print("Target found at index:", index)else:print("Target not found in the array.")以上代码使用二分查找算法在有序数组中查找给定的目标值。
3. 第三题答案:题目要求实现一个递归算法,可以选择任意一种递归算法进行实现。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.1算法:是对特定问题求解步骤的一种描述,是指令的有限序列。
程序:当一个算法用某种程序设计语言来描述时,得到的就是程序,也就是说,程序是用某种程序设计语言对算法的具体实现.算法有输入、输出、确定性、能行性和有限性等特征,当不具备有穷性时,只能叫做计算过程,而不能称之为算法,算法可以终止,而程序没有此限制。
1.2程序证明和程序测试的目的各是什么?程序证明是确认一个算法能正确无误的工作.程序测试的目的是发现错误1n?0{!?n的递归定义:解: n!1-91?n?1)!nn*(求解n!的递归函数long Factorial (long n){if(n<0){cout<<”error!”;exit(0);}if(n==0)return 1;else return n *Factorial (n-1);}1-10使用归纳法,证明上题所设计的计算n!的递归函数的正确性证明(归纳法证明):(1)首先,如果n=0,那么程序执行if(n==0)return 1;返回1,算法显然正确;(2)假定函数Factorial对n<k(>1)能正确运行,那么,当n=k时,算法必定执行:else return k *Factorial (k-1);因为Factorial (k-1)正确,所以,当n=k时,程序运行正确综合以上两点,可得程序正确.证毕.2-1, 简述衡量一个算法的主要性能标准,说明算法的正确性与健壮性的关系答: 衡量一个算法的主要性能指标有:正确性,简单性,高效低存储,最优性算法的正确性与健壮性的关系:所谓算法的正确性:是指在合法的输入下,算法应实现预先规定的功能和计算精度要求;所谓算法的健壮性,是指当输入不合法时,算法应该能按某种预定的方式做出适当的处理;正确的算法不一定的是健壮的,健壮的算法也不一定是完全正确的.正确性和健壮一个可靠的算法,要求能在正常情况下正确的工作,而在异常情况下,亦.性是相互补充的.能做出适当处理.2-9(1)设计一个C/C++程序,实现一个n*m的矩阵转置,原矩阵与其转置矩阵保存在二维数组中. V oid reverse(int **a,int **b,int n,int m){For(int i=0;i<n;i++)For(int j=0;j<m;j++)b[j][i]=a[i][j];}(2)使用全局变量count,改写矩阵转置程序,并运行修改后的程序以确定此程序所需的程序步V oid reverse(int **a,int **b,int n,int m,int &count){int i=0;count++;int j=0;count++;For(;i<n;i++)For(;j<m;j++){count++;b[j][i]=a[i][j];count++;}}2-10试用定义证明下列等式的正确性22)5n-8n+2=O(n(1)22-8n+2<=6n5n时,有时,当n>n证明: 因为当n=1,C=6002-16 使用递推关系式计算求n!的递归函数的时间(即分析1-9题中的函数的时间复杂度),要求使用替换和迭代两种方法分别计算之.解: 分析1-9题中的函数的时间复杂度:用基本运算乘法的运算次数作为衡量时间复杂度的量当n=0时,程序执行if(n==0) return 1;,并没有做乘法,故T(0)=0;当n>=1时程序执行n*Factorial (n-1);此时T(n)= T(n-1)+1故:0n?0{?T(n)111)??n?T(n替换法: T(0)=0,T(1)=1,T(2)=2----- 总结得到:T(n)=n;归纳法证明:(1),当n=0时,T(0)=0,结论成立;(2)假设当k<n时,有 T(k)=k,那么,当k=n时,有T(n)=T(n-1)+1=(n-1)+1=n所以,对所有n>=0有T(n)=n;成立.迭代法:T(n)=T(n-1)+1=(T(n-2)+1)+1=((T(n-3)+1)+1)+1=....=T(0)+1+1......+1(n个1)=n2n)?(n/2T(n)?2T2)?T(1利用递归树计算递推方程 2-19k ,非递归部分之和为即k+1)层那么假设n=2,,总共有logn+1(23logn2k222122…=(1+1/2+1/2+n+1/2/2+n+1/2/2)n+…+n+/2n22)=2n+2n=O(n处的2n/3X与它先将待查元素X与n/3处的元素比较,然后将5-8三分搜索算法的做法是:n/3 或者将范围缩小到原来的比较的结果或者找到X,元素比较,*/ 递归算法/*int Search3(int a[],int left,int right,int x){int l,u;if(left<=right){l=left+(right-left)/3;u=left+(right-left)*2/3;if(x==a[u])return u;else if(x==a[l])return l;else if(x>a[u])return Search3(a, u+1, right,x);else if(x>a[l])return Search3(a, l+1, u-1,x);elsereturn Search3(a, left, l-1,x);}return -1;}void main(){int n,*a;int x,i;cout<<Please input n:;cin>>n;a=new int[n]; //动态数组int location=-1;for(i=0;i<n;i++){a[i]=i+1;}cout<<Please input the search x:;cin>>x;cout<<endl<<Search3(a, 0, n-1,x)<<endl;}void main() */ 非递归算法/* {int a[15];int x,i;int location=-1;for(i=0;i<15;i++){a[i]=i+1;}cin>>x;i=0;int j=14,l,u;while(i<=j){l=i+(j-i)/3;u=i+(j-i)*2/3;if(x==a[u]){location=u;break;}else if(x==a[l]){location=l;break;}else if(x>a[u])i=u+1;else if(x<a[l])j=l-1;else{i=l+1;j=u-1;}}cout<<location<<endl; //x的位置}5-12V oid stoogesort(nt a[],int left,int right) {if(a[left]>a[right]) swap(a,left,right); if(left+1>=right) return;int k=(right-left+1)/3;stoogesort(a,left,right-k);stoogesort(a,left+k,right);stoogesort(a,left,right-k);}证明:元素个数n=right-left+1;(1)若为空表或只有一个元素(n=1时,即left+1==right)时,程序执行if(a[left]>a[right])swap(a,left,right);之后,执行if(left+1>=right) return;即此时程序做了一次元素之间的比较之后,不做任何操作,显然正确.(2)假设当n< right-left+1(n>=2)时,算法正确,即对于所有元素个数小于n的元素集,算法能正确排序.那么,当n= right-left+1时,算法执行程序段:int k=(right-left+1)/3;stoogesort(a,left,right-k);stoogesort(a,left+k,right);stoogesort(a,left,right-k);由假设可知:以上三条语句都能正确运行,所以,当n= right-left+1时,算法正确.由以上两点可知,算法正确.分析算法的时间复杂度:排序算法,基本运算仍然是元素之间的比较,所以,算法时间复杂度为:1n?0,1{?nT()3T(2n/3)?1n?2(用替换或迭代法计算之即可)6-1设有背包问题实例,n=7,(w0,w1,w2,w3,w4,w5,w6)=(2,3,5,7,1,4,1),.。
求这一实例的最优解及最大收益M=15,(p0,p1,p2,p3,p4,p5,p6)=( 10,5,15,7,6,18,3).解:首先,选择最优量度标准为收益重量比;其次, 依据收益重量比的非增次序对输入(物品)进行排序(p0/w0,p1/w1,p2/w2,p3/w3,p4/w4,p5/w5,p6/w6)=(5,5/3,3,1,6,4.5,3)对物品排序结果为:4,0,5,2,6,1,3最后,进行贪心选择:X=(4) X=(4,0) X=(4,0,5)(剩余载重)U=14 U=12 U=8(收益) P=6 P=6+10=16 P=16+18=34X=(4,0,5,2) X=(4,0,5,2,6) X=(4,0,5,2,6,1(2/3))(剩余载重)U=3 U=2 U=0(收益) P=34+15=49 P=49+3=52 P=52+2/3*5=55.33所以,最优解为x=(1,2/3,1,0,1,1,1); 即装入第0,2,4,5,6物品和第1个物品的2/3最大收益: P=55.336-2,0/1背包问题是一种特殊的背包问题,装入背包的物品不能分割,只允许或者整个物品装入背包,或者不装入,即xi=0,或1,(0<=i<n),以题6-1的数据作为0/1背包的实例,按贪婪法求解,这样求得的解一定是最优解吗?为什么?解:首先,选择最优量度标准为收益重量比;其次, 依据收益重量比的非增次序对输入(物品)进行排序(p0/w0,p1/w1,p2/w2,p3/w3,p4/w4,p5/w5,p6/w6)=(5,5/3,3,1,6,4.5,3)对物品排序结果为:4,0,5,2,6,1,3最后,进行贪心选择:X=(4) X=(4,0) X=(4,0,5)(剩余载重)U=14 U=12 U=8(收益) P=6 P=6+10=16 P=16+18=34X=(4,0,5,2) X=(4,0,5,2,6) X=(4,0,5,2,6)(剩余载重)U=3 U=2 继续考察第1和第3个(收益) P=34+15=49 P=49+3=52 物品,都不能装入.所以,贪心法求得的0/1背包问题的最优解为x=(1,0,1,0,1,1,1);即装入第0,2,4,5,6物品最大收益: P=52但实际上,当y=(1,1,1,0,1,1,0) 即装入第0,1,2,4,5物品,可获收益为P=54,所以,贪心法求得的0/1背包问题的解x一定不是最优解.原因是: 对于0/1背包问题,贪心法并不能保证使其单位载重下的收益最大,因为通常在背包没还装满时,却再也装不下任何物品,这样,就使得单位载重下的物品收益减少,所以, 0/1背包问题通常不能用贪心法求解.作业,6-3 设有带时限的作业排序实例n=7,收益(p0, p1, p2, p3, p4, p5, p6)=(3,5,20,18,1,6,30)得到的用JS的时限(d0, d1, d2, d3, d4, d5, d6)=(1,3,4,3,2,1,2),给出以此实例为输入,执行函数最优解和最大收益。