(1)试证明下面的算法Primality能以80%以上的正确率判定给定的整数n是否为素数.另一方面,举出
(1)试证明下面的算法Primality能以80%以上的正确率判定给定的整数n是否为素数.另一方面,举出整数n的一个例子,表明算法对此整数n总是给出错误的解答,进而说明该算法不是一个蒙特卡罗算法.
(2)试找出,上述算法Primality中可用于替换整数30030的另一个整数(可使用大整数),使得用此整数代替30030后,算法的正确率提高到85%以上.
(1)试证明下面的算法Primality能以80%以上的正确率判定给定的整数n是否为素数.另一方面,举出整数n的一个例子,表明算法对此整数n总是给出错误的解答,进而说明该算法不是一个蒙特卡罗算法.
(2)试找出,上述算法Primality中可用于替换整数30030的另一个整数(可使用大整数),使得用此整数代替30030后,算法的正确率提高到85%以上.
第1题
在RSA算法中,已知两个质数分别为11和13,则下面的选项中,可成为公钥的是(),对应的私钥是()。
A.(143,3) B.(143,7) C.(143,25) D.(143,149) A.(143,77) B.(143,91) C.(143,103) D.(143,120)
第2题
下面的命令在路由器Rl中建立IKE策略,请补充完成命令或说明命令的含义。
Rl(config)crypto isakmp policy 110 进入ISAKMP配置模式
R1(config-isakmp)样encryption des(5)
R1(config-isakmp)(6)采用MD5散列算法
R1(config-isakmp)authentication pre-share(7)
Rl(config-isakmp)group 1
R1(config-isakmp)lifetime(8)安全关联生存期为l天
第3题
阅读以下说明和流程图,填补流程图中的空缺(1)一(5),将解答填入答题纸的对应栏内。
【说明】
下面的流程图采用公式ex=1+x+x2/2 1+x3/3 1+x4/4 1+…+xn/n!+???计算ex的近似值。设x位于区间(0,1),该流程图的算法要点是逐步累积计算每项xx/n!的值(作为T),再逐步累加T值得到所需的结果s。当T值小于10-5时,结束计算。
【流程图】
第4题
阅读下列程序说明和c代码,将应填入(n)处的字句写在对应栏内。
[说明]
下面的程序利用递归算法计算x和y的最大公约数。
[函数2.1]
main ()
{ int x,y,k,t;
scanf(" % d% d" , &x, &y);
if(x>y) { t=x;x=y; y=t;}
(1);
while(k! =0){
y=x;
(2);
k=y%x;
}
prinff("% d" ,x); }
[函数2.2说明]
函数fun(char *str,char *substr的功能是计算子串sugbstr在串str中出现的次数。
[函数2.2]
fun(ehar * str, char * substr)
{ int x,y,z;
(3);
for(x=0;str[ x] ! = '\O';x + + )
for(y=x,z=0;sabstr[z] = =str[y];(4),y+ +)
if((5)= ='\0') {
num + +;
break;
}
return(num);
}
第5题
局部性原理为下面的某个页面替换算法提供了合理的策略,它是
A.FIFO算法
B.LRU算法
C.OPT算法
D.以上都不对
第6题
阅读以下说明和C语言函数,将应填入(n)处的字句写在对应栏内。
【说明】
下面的程序构造一棵以二叉链表为存储结构的二叉树算法。
【函数】
BTCHINALR *createbt (BTCHINALR *bt )
{
BTCHINALR *q;
struct node1 *s [30];
int j,i;
char x;
printf ("i,x =" ); scanf ("%d,%c",&i,&x );
while (i!=0 && x!='$')
{ q = (BTCHINALR* malloc (sizeof (BTCHINALR )); //生成一个结点
(1);
q->1child = NULL;
q->rchild = NULL;
(2);
if((3);)
{j=i/2 //j为i的双亲结点
if(i%2==0
(4) //i为j的左孩子
else
(5) //i为j的右孩子
}
printf ("i,x =" ); scanf ("%d,%c",&i,&x ); }
return s[1]
}
第7题
●试题一
阅读下列说明和流程图,将应填入(n)的语句写在答题纸的对应栏内。
【流程图】
图1
下面的流程图描述了对16位二进制整数求补的算法。计算过程是:从二进制数的低位(最右位)开始,依次向高位逐位查看,直到首次遇到"1"时,停止查看。然后,对该"1"位左面的更高位(如果有的话),逐位求反,所得的结果就是对原二进制数求补的结果。
例如:对二进制整数10111001 10101000求补的结果是01000110 01011000。
设16位二进制整数中的各位,从低位到高位,依次存放在整型数组BIT的BIT[1]~BIT[16]中。例如,二进制整数10111001 10101000存放在数组BIT后,就有BIT1[1]=0,BIT[2]=0,……,BIT[15]=0,BIT[16]=1。
流程图(如图1所示)中 (1) 处按"循环变量名:循环初值,增量,循环终值"格式描述。若流程图中存在空操作,则用NOP表示。
第9题
(2)
(3)
(4)
(5)
(6)
(7)
第10题
下面的程序段违反了算法的(2)原则。 Void sam() {int n=2; while(!odd(n)) n+=2 printf(n); }
A.有穷性
B.确定性
C.可行性
D.健壮性
第11题
下面的程序段违反了算法的(52)原则。 void sam() {int n=2: while (!odd (n)) n+=2; printf (n); }
A.有穷性
B.确定性
C.可行性
D.健壮性