![](https://lstatic.shangxueba.com/jiandati/pc/images/pc_jdt_tittleico.png)
给定n个不等的整数构成的集合L和整数s,设计一个算法判断在L中是否存在两个整数x和y(x < y),满足x + y = s,以加法运算作为基本运算分析你的算法在最坏情况下的时间复杂度。
![](https://lstatic.shangxueba.com/jiandati/pc/images/jdt_panel_vip.png)
![](https://lstatic.shangxueba.com/jiandati/pc/images/no_answer.png)
设是n个不等的整数构成的序列,A的一个单调递增子序列是序列
使得
,且
,子序列
的长度是含有的整数个数k,例如
,它的长为4的递增子序列是:
,
,
。设计一个算法求A得一个最长得单调递增子序列,分别分析算法得时间复杂度。设算法得输入实例是
,给出算法的计算过程和最后的解。
设1={1,2,...,n}是1的一个子集.mc(x)是一个偏假p正确蒙特卡罗算法.该算法用于判定所给的整数1≤x≤n是否为集合S中的整数,即x∈S.设q=1-p.由偏假算法的定义可知,对任意x∈S有Prob{mc(x)=true}=1.当x∈S时,Prob{mc(x)=truc}≤q.考虑下面的产生S中随机元素的算法GenRand如下:
假设由语句“x=rnd.Random(n)+1;"产生的整数x∈S的概率为r,证明算法GenRand返回的整数不在S中的概率最多为
证明:对任意给定的m个整数a1,a2,…,am,必存在k和l(0≤k≤l≤m),使得ak+1+ak+2+…+al能被m整除.
(1)试证明下面的算法Primality能以80%以上的正确率判定给定的整数n是否为素数.另一方面,举出整数n的一个例子,表明算法对此整数n总是给出错误的解答,进而说明该算法不是一个蒙特卡罗算法.
(2)试找出,上述算法Primality中可用于替换整数30030的另一个整数(可使用大整数),使得用此整数代替30030后,算法的正确率提高到85%以上.
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!