1. 给出乘法逆元的基本概念;利用扩展欧几里得算法编写求解乘法逆元的程序,其中输入:整数e及模n,满足e和n互素,输出:e模n的乘法n逆元d. 2. 简单介绍模算术运算的性质;编写程序实现模幂运算的快速算法,其中输入:a,b和n,a﹤n,求解a^b (mod n)。 两个题目二选一即可。请将对问题的解答,程序及程序运行结果截图保存在word文档中,以附件形式上传。

题目

1. 给出乘法逆元的基本概念;利用扩展欧几里得算法编写求解乘法逆元的程序,其中输入:整数e及模n,满足e和n互素,输出:e模n的乘法n逆元d. 2. 简单介绍模算术运算的性质;编写程序实现模幂运算的快速算法,其中输入:a,b和n,a﹤n,求解a^b (mod n)。 两个题目二选一即可。请将对问题的解答,程序及程序运行结果截图保存在word文档中,以附件形式上传。


相似考题
更多“1. 给出乘法逆元的基本概念;利用扩展欧几里得算法编写求解乘法逆元的程序,其中输入:整数e及模n,满足e和n互素,输出:e模n的乘法n逆元d. 2. 简单介绍模算术运算的性质;编写程序实现模幂运算的快速算法,其中输入:a,b和n,a﹤n,求解a^b (mod n)。 两个题目二选一即可。请将对问题的解答,程序及程序运行结果截图保存在word文档中,以附件形式上传。”相关问题
  • 第1题:

    阅读下面的程序: Private Sub Form_Click() Dim m,n As Integer m=InputBox("请输入M的值") m=Val(m) m1=m n=InputBox("请输入N的值") n=Val(n) n1=n Do While n<>0 remin=m Mod n m=n n=remin Loop Print m1,n1,m End Sub 程序运行后,单击窗体,在对话框中分别输入16和24,则程序在窗体上的输出结果为

    A.16 24 4

    B.16 24 8

    C.24 16 6

    D.24 16 8


    正确答案:B
    解析:本题捉供的是用“辗转相除法”求两个整数最大公约数的程序。一般来说,假定有两个整数m和n(m>n),将m作为被除数,n作为除数,相除后余数为r。如果r不等于0,则令m=n,n=r,再进行一次除法运算(以新的m作为被除数,n作为除数),得到新的r。如果r仍不等于0,则重复上述过程,直到r=0为止,此时的n就是两个数的最大公约数。在本题的DoWhile-Loop循环中,通过辗转相除求最大公约数,循环结束的条件是相除后余数为0,如果不为0,则一直“除”下去。这里用Mod运算符求余数,较大的整数作为被除数或者较小的整数作为被除数都可以得到正确结果,但整除的次数可能会不一样。在本题的输入中,先输入16,再输入24,求出的最大公约数仍为8。

  • 第2题:

    执行以下程序段,并输入1.23,则程序的输出结果应是【 】。

    N=Str(InputBox(“请输入一个实数:”))

    p=IiaStr(N,".")

    Print Mid(N,p)


    正确答案:.23
    .23 解析:InStr函数、Mid函数
    InStr([首字符位置]字符串1,字符串2[,n])用来在“字符串1”中查找“字符串2”,如果找到,则返回“字符串2”的第一个字符在“字符串广中的位置。
    如果带有参数“首字符位置”,则从该位置开始查找,否则从“字符串1”的起始位置查找。可选参数“n”用来指定字符串比较方式,可以取0、1或2。如为0,则进行在比较时区分大小写:如为1,则在比较时忽略大小写;如为2,则基于数据库中包含的信息进行比较。
    Mid(字符串,p,n)函数用来在“字符串”中从第p个字符开始,向后截取n个字符。如果省略参数n,则从第p个字符开始,向后截取到字符串的末尾。
    跟踪程序:
    n="1.23"
    p=InStr(n,".")=InStr("1.23",".")
    p=2
    所以,Mid("1.23",2)所截取的字符是:“.23”。
    最终的输出结果是:.23。

  • 第3题:

    请编写一个函数int sum(int n),该函数完成1+2+3+…+n的运算,并返回运算结果,其中n>0。注意:请使用递归算法实现该函数。

    注意:部分源程序已存在文件:test11.cpp中。

    请勿修改主函数main和其他函数中的任何内容,仅在函数sum的花括号中填写若干语句。

    文件test11_2.cpp的内容如下:

    include<iostream.h>

    int sum(int n)

    {

    }

    void main()

    {

    int n;

    cout<<"输入n:";

    cin>>n;

    int result;sum(n);

    cout<<"结果为:"<<result<<endl;

    }


    正确答案:int sum(int n) { if(n==1) return 1; else return n + sum(n-1); }
    int sum(int n) { if(n==1) return 1; else return n + sum(n-1); } 解析:本题考查的是考生对于递归函数的熟练应用。递归的终止条件为n=1时,返回值为1

  • 第4题:

    阅读下面的程序,当输入分别为111和222时,程序输出为 ______。 n1=InputBox(”请输入第一个数:”) n2=Val(1nputBox("请输入第二个数:")) Print n1+n2

    A.111222

    B.222

    C.333

    D.程序出错


    正确答案:C
    解析:由于InputBox函数的默认返回值是字符串,因此n1的值为111,n2经过函数Val转换后成为数值型,其值为222。按照Visual Basic自动结合的原则,n1会先自动转换为数值型再和n2进行运算,最终输出结果为333。
      为了提高程序的可读性,最好对每一个变量都进行定义。故在程序的最前面加上:
      Dim n1 As Integer
      Dim n2 As Integer

  • 第5题:

    假定输入28,那么程序运行的结果是【】。 include void main() {int n,i,k=0;cout<<“请

    假定输入28,那么程序运行的结果是【 】。

    include<iostream.h>

    void main() {

    int n, i,k=0;

    cout<<“请输入整数”;

    cin>>n; for(i=1;i<n;i++)

    if(n%i= =0) k=k+i;

    if(n= =k)cout<<n<<“是完数\n”;

    else cout<<n<<“不是完数\n”;

    }


    正确答案:请输入整数: 28 28是完数
    请输入整数: 28 28是完数

  • 第6题:

    有如下程序:includeusing namespace std;long fib(int n){ if(n>2) return(fib(n-1)+

    有如下程序: #include<iostream> using namespace std; long fib(int n) { if(n>2) return(fib(n-1)+fib(n-2)); else return(n); } void main() { int i; cout<<"请输入一个整数:"; cin>>i;cout<<endl; cout<<fib(i)<<endl; { 当输入4、2时,该程序的输出结果是( )。

    A.5

    B.4

    C.5

    D.6 1 2 2 2


    正确答案:C
    解析:注意递归调用的过程,当输入2作为函数参数时,调用肋()函数直接返回参数值2;当输入参数大于2时有一个递归调用的过程。

  • 第7题:

    阅读以下FORTRAN程序
    READ(*,*)M,N
    K=MOD(M,N)
    10 IF(K.GT.0)THEN
    M=N
    N=K
    K=MOD(M,N)
    GOTO 10
    END IF
    WRITE(*,*)N
    END
    若运行以上程序时,由键盘输入25,11,则程序输出为( )。

    A.3
    B.2
    C.1
    D.0

    答案:C
    解析:
    K=MOD(M,N)=MOD(25,11)=3>0
    则M=11,N=3,K=MOD(11,3)=2>0
    则M=3,N=2,K=MOD(3,2)=1>0
    则M=2,N=1,K=MOD(2,1)=0,可得最后N=1

  • 第8题:

    两个矩阵Am*n和Bn*p相乘,用基本的方法进行,则需要的乘法次数为m*n*p。多个矩阵相乘满足结合律,不同的乘法顺序所需要的乘法次数不同。考虑采用动态规划方法确定Mi,M(i+1),…,Mj多个矩阵连乘的最优顺序,即所需要的乘法次数最少。最少乘法次数用m[i,j]表示,其递归式定义为:



    其中i、j和k为矩阵下标,矩阵序列中Mi的维度为(pi-1)*pi采用自底向上的方法实现该算法来确定n个矩阵相乘的顺序,其时间复杂度为( )

    A.O(n2)
    B.O(n2lgn)
    C.O(n3)
    D.O(n3lgn)

    答案:C
    解析:
    四个矩阵分别为:
    2*6 6*3

  • 第9题:

    子集N的对称集合S(N)中的运算遵循:封闭律、结合律,()及逆元律。

    • A、交换律
    • B、分配律
    • C、幺元律
    • D、玄元律

    正确答案:C

  • 第10题:

    RSA加密算法的公钥为PU={e,n},私钥为PR={d,n},仅当d与Φ(n)互素,即gcd(Φ(n),d)=1时,d和e是模Φ(n)的乘法逆元。gcd是什么概念的简称()

    • A、最小公因子
    • B、费马定理
    • C、欧拉定理
    • D、最大公因子

    正确答案:D

  • 第11题:

    单选题
    RSA加密算法的公钥为PU={e,n},私钥为PR={d,n},以下条件中RSA公钥加密算法无需满足的是()
    A

    可以找到e,d和n,使得对所有M<n,有Medmod n=M

    B

    由e和n确定d是不可行的

    C

    e和d互为模Φ(n)的乘法逆元,其中Φ(n)为欧拉函数

    D

    e和d之积必须大于n


    正确答案: B
    解析: 选项A,B和C都是RSA公钥加密算法需要满足的条件,只有选项D提出的条件RSA是无需满足的,在RSA密钥生成过程中,e和d的乘积可以大于n也可以小于n,所以该题的答案是D。

  • 第12题:

    单选题
    通常把ECC中的乘法运算与RSA中的什么运算相对应()
    A

    模乘运算

    B

    幂乘运算

    C

    模幂运算


    正确答案: A
    解析: D模加运算答案是C。人们通常将ECC中的加法运算与RSA中的模乘运算相对应,将ECC中的乘法运算与RSA中的模幂运算对应。所以正确选项是C。

  • 第13题:

    请教:2005年上半年软件水平考试(高级)系统分析师上午(综合知识)试题真题试卷第1大题第25小题如何解答?

    【题目描述】

    在代数系统<T,min>中,T为m,n 间的整数集合,m<n,且T 包括m 和n,min为两个整数中取小者的运算,则T中存在逆元的元素有(58)。

    A.m

    B.n

    C.

    D.没有存在逆元的元素

     


         

    正确答案:B

    答案分析:

    解析:根据定义可知T 中存在么元n,按照逆元的定义,只有元素”存在逆元n,使得 min(n,n)=n。

     

  • 第14题:

    阅读下面的程序: n1=InputBox(“请输入第一个数:”) n2=InputBox(“请输入第二个数:”) Print n1+n2 当输入的数分别为111和222时,程序输出______。

    A.111222

    B.222

    C.333

    D.程序出错


    正确答案:A
    解析:由于InputBox函数的默认返回值是字符串,因此n1和n2的值分别为111和222,那么n1+n2就将两个字符串连接为111222。

  • 第15题:

    在代数系统中,T为m,,z间的整数集合,m

    在代数系统<T,min>中,T为m,,z间的整数集合,m<n,且T包括,m和n,min为两个整数中取小者的运算,则T中存在逆元的元素有______。

    A.m

    B.n

    C.[(m+n)/2]

    D.没有存在逆元的元素

    A.

    B.

    C.

    D.


    正确答案:B

  • 第16题:

    请编写一个函数fun(),它的功能是计算并输出给定整数n的所有因子(不包括1与自身)的平方和(规定n的值不大于100)。

    例如:主函数从键盘给输入n的值为56,则输出为 sum=1113。

    注意:部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

    试题程序:

    include <stdio.h>

    long fun(int n)

    {

    }

    main()

    {

    int n;

    long sum;

    printf("Input n:");

    scanf("%d",&n);

    sum=fun(n);

    printf("sum=%ld\n",sum);

    }


    正确答案:long fun(int n) { int i; long s=0; for(i=2;i=n-1;i++) /*从2~n-1中找n的所有因子*/ if(n%i==0) s+=i*i; /*将所有因子求平方加*/ return s; /将平方和返回*/ }
    long fun(int n) { int i; long s=0; for(i=2;i=n-1;i++) /*从2~n-1中找n的所有因子*/ if(n%i==0) s+=i*i; /*将所有因子求平方加*/ return s; /将平方和返回*/ } 解析:本题的解题思路是用n逐个去除以2到n-1之间的所有数,如果n能被除尽,则把所得到的一个因子的平方累加到s中去。

  • 第17题:

    两个矩阵Am*n和Bn*p相乘,用基本的方法进行,则需要的乘法次数为m*n*p 多个矩阵相乘满足结合律,不同的乘法顺序所需要的乘法次数不同。考虑采用动态规划方法确定Mi,M{i+i),…,Mj多个矩阵连乘的最优顺序,即所需要的乘法次数最少。最少乘法次数用m[i,j]表示,其递归式定义为:其中i、j和k为矩阵下标,矩阵序列中Mi的维度为(Pi-i.)*Pi采用自底向上的方法:实现该算法来确定n个矩阵相乘的顺序,其时间复杂度为( 64 )。若四个矩阵M1. M2、M3.,M4相乘的维度序列为2、6、3、10.3,采用上述算法求解,则乘法次数为( 65 )。

    A.O(N2)

    B.O(N2Lgn)

    C.O(N3)

    D.O(n3lgn)


    正确答案:C

  • 第18题:

    在代数系统中,T为m,n 间的整数集合,m

    在代数系统<T,min>中,T为m,n 间的整数集合,m<n,且T 包括m 和n,min为两个整数中取小者的运算,则T中存在逆元的元素有(58)。

    A.m

    B.n

    C.

    D.没有存在逆元的元素


    正确答案:B
    解析:根据定义可知T 中存在么元n,按照逆元的定义,只有元素”存在逆元n,使得 min(n,n)=n。

  • 第19题:

    定点机字长n位,其中包台一位符号位。若采用补码一位乘(Booth算法)实现乘法运算,则最多需要做()次移位运算。

    A.n-1
    B.n
    C.n+1
    D.n+2

    答案:A
    解析:
    在补码一位乘中,最后一步不需要移位,故最多需要n-1次移位。

  • 第20题:

    下列关于定点数一位原码乘法的描述正确的是()。 Ⅰ.符号位不参与运算,根据数值位的乘法运算结果确定结果的符号位  Ⅱ.在原码一位乘法过程中,所有的移位均是算术移位操作  Ⅲ.假设两个n位数进行原码一位乘,部分积至少需要使用n位寄存器

    • A、Ⅱ、Ⅲ
    • B、只有Ⅱ
    • C、只有Ⅲ
    • D、全错

    正确答案:D

  • 第21题:

    通常把ECC中的乘法运算与RSA中的什么运算相对应()

    • A、模乘运算
    • B、幂乘运算
    • C、模幂运算

    正确答案:C

  • 第22题:

    单选题
    子集N的对称集合S(N)中的运算遵循:封闭律、结合律,()及逆元律。
    A

    交换律

    B

    分配律

    C

    幺元律

    D

    玄元律


    正确答案: C
    解析: 暂无解析

  • 第23题:

    单选题
    RSA加密算法的公钥为PU={e,n},私钥为PR={d,n},仅当d与Φ(n)互素,即gcd(Φ(n),d)=1时,d和e是模Φ(n)的乘法逆元。gcd是什么概念的简称()
    A

    最小公因子

    B

    费马定理

    C

    欧拉定理

    D

    最大公因子


    正确答案: D
    解析: gcd是最大公因子的简称,所以本题答案是D,选项A中的“最小公因子”是迷惑选项,选项B中的“费马定理”和选项C中的“欧拉定理”是RSA算法使用的两个重要定理,但是这两个定理的简称并非gcd所以选项B和选项C是错误的。

  • 第24题:

    单选题
    下列关于定点数一位原码乘法的描述正确的是()。 Ⅰ.符号位不参与运算,根据数值位的乘法运算结果确定结果的符号位  Ⅱ.在原码一位乘法过程中,所有的移位均是算术移位操作  Ⅲ.假设两个n位数进行原码一位乘,部分积至少需要使用n位寄存器
    A

    Ⅱ、Ⅲ

    B

    只有Ⅱ

    C

    只有Ⅲ

    D

    全错


    正确答案: D
    解析: 暂无解析